傻傻草丛

文章
5
资源
0
加入时间
2年10月17天

java-数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字

具体思路:如果一个数出现的次数超过数组一半的长度,那么就是说出现的次数比其他所有数字出现的次数还要多。因此我们可以考虑保存2个值,一个是数组中的一个数,一个是数的次数。当我们遍历到下一个数字的时候,如果下一个数字和我们之前保存的数字相同,则次数加1,如果不同则次数减1。如果次数为0了这保存当前遍历到的数,并把次数设为1。最后进行校验是否超过长度的一半。实际上还可以利用快速排序来进行,如果超过数...