首页 > 试题广场 >

数组里面没有出现过的数字

[编程题]数组里面没有出现过的数字
  • 热度指数:1268 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为N的正整数数组nums,其中nums[i]的值都在区间[1,n]中,请你找出nums数组在[1,n]范围里面没有出现过的数字,并将它们放在数组里面返回(在数组里面的顺序可以不唯一)

注:本题有时间复杂度为O(n),空间复杂度为O(1)的解法,返回的数组不计入空间复杂度计算

数据范围:


示例1

输入

[2,1,4,5,1,2]

输出

[3,6]

说明

数组长度为6,那么范围为[1,6],其中3和6没有在数组里面出现,返回[3,6]  
示例2

输入

[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
}

发表于 2023-03-09 07:59:11 回复(0)