LeetCode #645 错误的集合

基本思路

用一个vector来模拟哈希表,记录每个元素的数量从而来找到重复的数和缺失的数。

标程

 1 class Solution {
 2 public:
 3     vector<int> findErrorNums(vector<int>& nums) {
 4         int n = nums.size();
 5         vector<int>hash(n+1);  // 模拟一个哈希map
 6         int a,b;
 7         for(int i = 0; i < n; i++){
 8             hash[nums[i]]++;   //记录集合s中各个元素的数量
 9         }
10         for(int i = 1; i <= n; i++){  //从1遍历到n
11             if(hash[i] == 2){   //数量为2的即为重复的数字
12                 a = i;
13             }
14             if(hash[i] == 0){   //数量为0的即为缺失的数字
15                 b = i;
16             }
17         }
18         return {a,b};
19     }
20 };

时间复杂度

O(N)

posted @ 2023-04-12 15:02  -Miracle-  阅读(15)  评论(0编辑  收藏  举报