算法:
1)初始化,设当前数组为arr[],长度为n,当前元素cur=arr[0],元素出现次数为count;
2)遍历数组,若count==0,设cur=arr[i],count=1;否则,转向3)
3)若arr[i]==cur,则count++,否则,转向4)
4)count--,当i==n-1时,转向5),否则i++,转向2)
5)返回cur;
1 int MoreThanHalf(int *arr,int n) 2 { 3 int cur,count=0; 4 for(int i=0;i<n;i++) 5 { 6 if(count==0) 7 { 8 cur=arr[i]; 9 count==1; 10 } 11 else 12 { 13 if(cur==arr[i]) 14 count++; 15 else 16 count--; 17 } 18 } 19 return cur; 20 }
转载于:https://www.cnblogs.com/mrlsx/p/5431837.html
最后
以上就是喜悦手链最近收集整理的关于数组中一个数字出现的次数超过了数组长度的一半,请找出这个数的全部内容,更多相关数组中一个数字出现内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复