数组中出现次数超过一半的数字
来源:互联网 发布:数据挖掘原理与实践 编辑:程序博客网 时间:2024/06/01 08:19
出现的次数超过数组长度的一半,表明这个数字出现的次数比其他数字出现的次数的总和还多。所以我们可以考虑每次删除两个不同的数,那么在剩下的数中,出现的次数仍然超过总数的一半。通过不断重复这个过程,不断排除掉其它的数,最终找到那个出现次数超过一半的数字。
例:数组 a[5]={0,1,2,1,1};
我们要查找的数字为1,操作步骤为:遍历整个数组,然后每次删除不同的两个数字,过程如下:
0 1 2 1 1 =>2 1 1=>1
#include <iostream>using namespace std;int findCandi(int* a, int len){int i, candidate;int nTimes = 0;for (i = 0; i < len; i++){if (nTimes == 0){candidate = a[i];nTimes++;}if (candidate == a[i]){nTimes++;}else{nTimes--;}}return candidate;}int main(){int a[10] = {1, 2, 3, 1, 1, 4, 5, 1, 1, 7};int N = 10;cout<<findCandi(a, N);}
- 数组中超过出现次数超过一半的数字
- 74.数组中超过出现次数超过一半的数字
- 74 数组中超过出现次数超过一半的数字
- 【数组4】数组中出现次数超过一半的数字
- 数组4:数组中出现次数超过一半的数字
- 数组中出现次数超过一半的数字
- 找出数组中出现次数超过长度一半的数字
- 2-数组中出现次数超过一半的数字
- 数组中出现次数超过一半的数字
- 数组中出现次数超过一半的数字[算法]
- 数组中出现次数超过一半的数字
- 找出数组中出现次数超过一半的数字--百度
- 数组中出现次数超过一半的数字
- 数组中出现次数超过一半的数字
- 数组中出现次数超过一半的数字
- 寻找数组中出现次数超过一半的数字
- 面试训练数组中出现次数超过一半的数字
- 数组中出现次数超过一半的数字
- poj 1177 经典线段树+扫描线就周长并
- Openssl更新步骤
- Html/css/java script学习总结
- [开心学php100天]第二天:疯狂的数组
- linux学习计划
- 数组中出现次数超过一半的数字
- 杭电ACM1061N^N求最右边的数的问题
- 解决PHP函数ip2long转换IP时数值太大而产生负数的办法
- js 常用方法
- Java 自学日志【一】
- nagios常见问题
- 毕业设计(二十五)---网站广告管理
- MySQL常用语句
- C#中static关键字的用法