题解 | 数组中出现次数超过一半的数字
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型vector
* @return int整型
*/
int MoreThanHalfNum_Solution(vector<int>& numbers)
{
//我们从numbers里面找出超过元素个数一半的那个元素
int n=numbers.size()/2;//先计算这个数组的长度的一般
unordered_map<int,int>arr;
//想遍历这个数组然后记录每个数字出现的次数
for(auto val:numbers)
{
arr[val]++;//记录这个数出现的次数
}
for(auto val:numbers)
{
if(arr[val]>n)
{
return val;
}
}
return 0;
}
};
联想公司福利 1500人发布