[剑指Offer] 28.数组中出现次数超过一半的数字
2017-11-20 11:23
316 查看
【思路】将每个数字都存入map中作为key值,将它们出现的次数作为value值,当value超过一半时则返回其key值。
1 class Solution 2 { 3 public: 4 int MoreThanHalfNum_Solution(vector<int> numbers) 5 { 6 if(numbers.size() == 1) 7 return numbers[0]; 8 int x = numbers.size()/2; 9 map<int,int> Map; 10 for(int i = 0; i < numbers.size(); i ++) 11 { 12 if(Map.find(numbers[i]) == Map.end()) 13 { 14 Map.insert(pair<int,int>(numbers[i],0)); 15 } 16 else 17 { 18 Map[numbers[i]] ++; 19 if(Map[numbers[i]] >= x) 20 return numbers[i]; 21 } 22 } 23 return 0; 24 } 25 };
相关文章推荐
- 剑指offer-28.数组中出现次数超过一半的数字
- (C++)剑指offer-28:数组中出现次数超过一半的数字(时间效率)
- 剑指offer 28 数组中出现次数超过一半的数字
- 【剑指offer】28数组中出现次数超过一半的数字
- 剑指Offer_28_数组中出现次数超过一半的数字
- 剑指Offer面试题29数组中出现次数超过一半的数字(涉及快排)
- 剑指Offer-29-数组出现次数超过一半的数字-基于Partition函数的O(n)算法
- 码农小汪-剑指Offer之26 -数组中出现次数超过一半的数字
- 面试-剑指offer-数组中出现次数超过一半的数字
- 剑指offer面试题29:数组中出现次数超过一半的数字
- 【剑指Offer面试题】 九度OJ1370:数组中出现次数超过一半的数字
- 剑指offer面试题29-数组中出现次数超过一半的数字
- 剑指Offer--029-数组中出现次数超过一半的数字
- 剑指offer之面试题29数组中出现次数超过一半的数字
- 【剑指offer】面试题 39:数组中出现次数超过一半的数字
- 剑指offer-29 数组中出现次数超过一半的数字
- 剑指Offer:面试题29——数组中出现次数超过一半的数字(java实现)
- 剑指offer 面试题29—数组中出现次数超过一半的数字
- 剑指offer 5.2 时间效率1 - 数组中出现次数超过一半的数字
- 【剑指offer之数组中出现次数超过一半的数字 】