方法一:将数组存入HashMap中,然后从1~n遍历一遍,看看HashMap中是否存在这个数
方法二:定义一个新的数组a,大小为n,遍历题目给出的数组nums,将a[nums[i]-1]置为1,代表这个数出现过。然后遍历数组a,如果a[j]为0,那么大小为j+1的数就未曾出现,将j+1写入lst
//method1
class Solution {
public List<Integer> findDisappearedNumbers(int[] nums) {
int n=nums.length;
List<Integer>lst=new ArrayList<Integer>();
HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();
for(int i=0;i<n;i++)
{
int t=nums[i];
map.put(t,t);
}
for(int j=1;j<=n;j++)
{
if(!map.containsKey(j))
lst.add(j);
}
return lst;
}
}