题目
数组中重复的数据
思路
使用 unordered_map
保存每个整数出现的次数,最后遍历一遍哈希表,将整数出现次数为 2 的整数存入结果数组中。
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Solution { public: vector<int> findDuplicates(vector<int>& nums) { unordered_map<int, int> hsp; vector<int> res; for(int i = 0; i < nums.size(); i ++){ hsp[nums[i]] ++; } for(auto it = hsp.begin(); it != hsp.end(); it++){ if(it->second == 2){ res.push_back(it->first); } } return res; } };
|
- 时间复杂度:O(n),其中 n 是数组 nums 的长度
- 空间复杂度:O(n),定义的哈希表的大小
执行用时:68 ms, 在所有 C++ 提交中击败了19.03%的用户
内存消耗:43.5 MB, 在所有 C++ 提交中击败了9.79%的用户
通过测试用例:28 / 28