题解 | #数组中出现次数超过一半的数字#
数组中出现次数超过一半的数字
http://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163
用一个for循环解决
菜鸟的想法如下:
public static int MoreThanHalfNum_Solution(int [] array) { if(array.length==0){ return 0; } if(array.length==1){ return array[0]; } int sum=1; int j=0; int le=0; int res=0; boolean lag=false; if(array.length%2==0){ le=array.length/2; lag=true; }else{ le=array.length/2+1; } for(int i = 1;i<array.length;i++){ if(array[j]==array[i]){ sum++; }else { if(i==array.length-1){ sum=1; j++; i=j; }else { continue; } } if(lag){ if(sum>le){ res=array[j]; break; } }else{ if(sum>=le){ res=array[j]; break; } } } return res; }