题目
在长度 2N 的数组中找出重复 N 次的元素
思路
利用哈希表统计每个数字出现的次数,若次数等于 nums.size() / 2
则返回该数字。
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| class Solution { public: int repeatedNTimes(vector<int>& nums) { int n = nums.size() / 2; unordered_map<int, int> hsp; for(int i = 0; i < nums.size(); i++){ hsp[nums[i]] ++; } for(auto it = hsp.begin(); it != hsp.end(); it++){ if(it->second == n) return it->first; } return 0; } };
|
- 时间复杂度:O(n),其中 n 是数组中元素的个数
- 空间复杂度:O(n),
执行用时:44 ms, 在所有 C++ 提交中击败了28.13%的用户
内存消耗:29.4 MB, 在所有 C++ 提交中击败了25.96%的用户
通过测试用例:102 / 102