给定一个长度为N的正整数数组nums,其中nums[i]的值都在区间[1,n]中,请你找出nums数组在[1,n]范围里面没有出现过的数字,并将它们放在数组里面返回(在数组里面的顺序可以不唯一)
注:本题有时间复杂度为O(n),空间复杂度为O(1)的解法,返回的数组不计入空间复杂度计算
数据范围:
[2,1,4,5,1,2]
[3,6]
数组长度为6,那么范围为[1,6],其中3和6没有在数组里面出现,返回[3,6]
[1,1]
[2]
package main import _"fmt" /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型一维数组 */ func findDisappearedNumbers( nums []int ) []int { cnt:=map[int]bool{} for _,x:=range nums{ cnt[x]=true } ans:=[]int{} for i:=1;i<=len(nums);i++{ if _,ok:=cnt[i];!ok{ ans=append(ans,i) } } return ans }