該題描述:
給定乙個長度為n的整數陣列nums
,陣列中所有的數字都在 0∼n−1的範圍內。
陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。
請找出陣列中任意乙個重複的數字。
注意:如果某些數字不在 0∼n−1 的範圍內,或陣列中不包含重複數字,則返回 -1;
樣例
給定 nums = [2, 3, 5, 4, 3, 2, 6, 7]。
返回 2 或 3。
具體思路:
具體思路劍指offer寫的很清楚了,就是通過數值和下標的對比以及交換來獲取是否重複,這裡需要注意三種情況:
1、長度為n的陣列裡包含乙個或者多個重複的數字
2、陣列中不包含重複的數字
3、無效的輸入(空陣列或者不在0~n-1內的數值)
**實現:
func duplicateinarray(nums int) int
for j := 0; j < len(nums)-1; j++
} for i := 0; i < len(nums)-1; i++ else
} }return -1
}
劍指offer 找出陣列中重複的數字
問題 在乙個長度為n的陣列裡的所有數字都在0 n 1的範圍裡,不知道重複的數字,也不知道每個重複數字重複幾次,找出陣列中所有重複的數字,如輸入,則應輸出。要求1 能改變陣列中的數字 思路1 將陣列排序,然後遍歷陣列,找出重複的數字。時間複雜度o nlogn 空間複雜度o 1 思路1的實現 vecto...
劍指offer 找出陣列中重複的數字
題目 在乙個長度為n的陣列裡的所有數字都在0 n 1的範圍內。陣列中某些數字是重複的,但是不知道有幾個數字重複了,也不知道每個數字重複了幾次,請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼輸出的重複數字2或者3.分析 陣列中的數字為0 n 1的範圍內,如果再這個陣列中不存在重複的...
劍指offer 找出陣列中重複的數字
在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限制 2 n 100000 暴力求解的思路非常的直接...