题解 | #数组中出现次数超过一半的数字#
数组中出现次数超过一半的数字
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; } };
哈希表的插入【】
哈希表的遍历:迭代器