1.找出在一个字符串中,某个数字出现的次数超过字符长度的一半,并打印出这个数字
public class CountMoreThanHalf{
public static void main(String[] args){
int[] arr = new int[] {1,1,1,1,1,1,3,4,5,2,2};
System.out.println(MoreThanHalfNum(arr));
}
public static int MoreThanHalfNum(int[] arr){
int maxCount = arr[0]; //标记出现最大次数的数
int num = arr[0]; //初始化将数组第一个数作为出现次数最多的数
int count = 1; //开始时次数为1;
for(int i = 1; i < arr.length; i++){ //从数组的第二个数开始遍历
if(num != arr[i]){
count --;
num = arr[i];
}else{
count ++;
}
if( count == 1)
maxCount = num;
}
//对找到的数进行验证
int k = 0;
for(int j = 0; j < arr.length; j++){
arr[j] == maxCount;
k ++;
}
if(k * 2 > arr.length)
return maxCount;
}
return 0;
}
输出结果为1。