func findRepeatNumber(nums []int) int {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 }
上一篇
Golang】面试总结
Golang】面试总结
版权声明:《 剑指offer leetcode 数组中的重复数字 》为admin原创文章,转载请注明出处!
最后编辑:2021-2-17 11:02:23