剑指 Offer 03. 数组中重复的数字()
生活随笔
收集整理的這篇文章主要介紹了
剑指 Offer 03. 数组中重复的数字()
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在一個長度為 n 的數組 nums 里的所有數字都在 0~n-1 的范圍內。數組中某些數字是重復的,但不知道有幾個數字重復了,也不知道每個數字重復了幾次。請找出數組中任意一個重復的數字。
解題思路
原地交換,讓對應的數字放在對應位置上,若對應位置已符合,說明數字重復
題目已經說了長度為n,且數字都在 0~n-1 的范圍內,不用擔心數組越界問題
需要考慮一種特殊情況,就是可能數字開始就在對應的位置上
代碼
func findRepeatNumber(nums []int) int {for index, n := range nums {if index != n && n == nums[n] {return n}nums[index], nums[n] = nums[n], nums[index]}return 0 }總結
以上是生活随笔為你收集整理的剑指 Offer 03. 数组中重复的数字()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android之Tab类总结
- 下一篇: tensorflow实现反卷积