题目
给定一个包含n个整数的数组nums,其中nums[i]在区间[1, n]内。请找出所有在[1, n]范围内,但没有出现在nums中的数字,并以数组的形式返回结果。
示例1:
输入:nums = [4, 3, 2, 7, 8, 2, 3, 1]
输出:[5, 6]
示例2:
输入:nums = [1, 1]
输出:[2]
解析
初看这道题,我们想到的是使用哈希表。首先,我们遍历输入数组,并将所有出现过的数字添加到哈希表中。然后,我们再次从1遍历到n,如果某个数字不在哈希表中,则将其添加到结果向量中,表示它在给定区间内未出现过。使用哈希表的具体实现,可参考下面的示例代码。
#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;vector<int> FindDisappearedNumbers(const vector<int> &vctNum)
{unordered_set<int> setUs