网站首页 LeetCode

剑指offer leetcode 数组中的重复数字

发布时间:2021-2-17 11:01 Wednesday编辑:admin阅读(242)

    func findRepeatNumber(nums []intint {
        n:= len(nums)
        for i :=0;i< n; i++{
            for  i != nums[i]  { //交换之后的新数还是从这开始,继续判断这个数是否需要交换,直到这个num[i]正确
                if (nums[i] == nums[nums[i]]){     //非第一次出现
                    return nums[i]
                }else {                            //第一次出现
                     x := nums[i]
                     nums[i] = nums[x]
                    nums[x] = x
                }
            }
        }
        return 0
    }

     

     

    //没搞明白这个原地置换的原理

    用map或者排序做吧。

     

    func findRepeatNumber(nums []int) int { var mapV = make(map[int]int) for i := 0; i <len(nums); i++ {
          _, ok :=mapV[nums[i]] if ok{ return nums[i]
          }else{
             mapV[nums[i]] = i
          }
       } return -1 }