数组中有一个数字出现的次数超过数组长度的一半
来源:互联网 发布:js定义数组的方法 编辑:程序博客网 时间:2024/05/17 08:44
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0;
思路1:
class Solution {
public:
int MoreThanHalfNum_Solution(vector<int> numbers) {
int len=numbers.size();
if(len==0) return 0;
int times=1;
int res=numbers[0];
for(int i=1;i<len;i++)
{
//统计函数。
if(numbers[i]==res)
{
times++;
}
else if(times>0)
{
times--;
}
else {
times=1;
res=numbers[i];
}
}
//判断多余的如何判断。
int cnt=0;
for(int i=0;i<len;i++)
if(numbers[i]==res)
cnt++;
if(len<2*cnt)
return res;
else
return 0;
}
};
- 数组中有一个数字出现的次数超过数组长度的一半......
- 数组中有一个数字出现的次数超过数组长度的一半
- 数组中有一个数字出现的次数超过数组长度的一半
- 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
- 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字
- C++数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字。
- C++数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。(牛客剑指offer)
- 【c语言】数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字
- 数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数字。
- 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字
- 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字
- 数组中一个数字出现的次数超过了数组长度的一半,找出这个数字
- 数组中一个数字出现的次数超过了数组长度的一半,找出这个数字
- 找出数组中出现次数超过长度一半的数字
- 数组中出现次数超过长度一半的数字
- 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数
- 面试:数组中有一个数字出现的次数超过了数组长度的一半,找出这个数
- 数组中有一个数字出现的次数超过了数组长度的一半,请找出这个数。java实现
- JS编程训练 | 题1:查找数组元素位置
- [cmake] 制作一个静态库archive
- MyBatis中Like语句使用方式
- 数组相关概念
- LeetCode--Two Sum
- 数组中有一个数字出现的次数超过数组长度的一半
- 常用shell命令(一)
- display:none和visibility:hidden的区别
- oracle12c创建用户scott和ORACLE 12C EM Express 进入方法 (转载)
- 自然语言处理
- 解决oracle11g用户登录时的被锁定 既ora-28000 the account is locked
- [cocos2d-x]关于Action
- 关注国情民情——华北水利水电大学“情艺”国情社情调研团
- 机器学习:时间序列模型