题解 | #数组中出现次数超过一半的数字#
数组中出现次数超过一半的数字
https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型vector
* @return int整型
*/
int MoreThanHalfNum_Solution(vector<int>& numbers) {
int res;
map<int, int> m;
for (int i = 0; i < numbers.size(); i++) {
int key = numbers[i];
int value;
map<int, int>::iterator it = m.find(key);
if (it == m.end()) {
value = 1;
} else {
value = m[key] + 1;
}
m[key] = value;
}
double len_2 = numbers.size() / 2.0;
for (map<int, int>::iterator it = m.begin(); it != m.end(); it++) {
if(it->second > len_2) res = it->first;
}
return res;
}
};
哈希表的插入【】
哈希表的遍历:迭代器
查看13道真题和解析