題目描述:
在乙個長度為 n 的陣列裡的所有數字都在 0 到 n-1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的,也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。
input:解題思路:output:
2
陣列元素在 [0, n-1] 範圍內的問題,可以將值為 i 的元素調整到第 i 個位置上進行求解,即位置序號與值進行對應,若位置序號與值位對應,則進行調整,直到第乙個出現重複的數字
以 (2, 3, 1, 0, 2, 5) 為例,第乙個元素的值位2.則應將其與2號位置上的元素1進行調換,此時陣列為(1,3,2,0,2,5),調整後陣列第乙個元素值為1(仍然不滿足第乙個元素值為0),故再將其與位置序號為1上元素進行調換,此時陣列為(3,1,2,0,2,5),依次,再將第乙個元素與位置序號為3的元素進行調換,此時陣列又變為(0,1,2,3,2,5),此時陣列前面四個元素滿足值為i其位置序號也為i的對應關係,位置序號為5的元素值為2與位置序號為2的元素值為2是重複的,此時即可輸出重複的數字為2
圖示:
劍指offer 1 找出陣列中重複的數字
給定乙個長度為 n 的整數陣列 nums,陣列中所有的數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。注意 如果某些數字不在 0 n 1 的範圍內,或陣列中不包含重複數字,則返回 1 樣例給定 nums 2...
劍指offer 1 矩陣陣列找數
在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。思路1 從左下角開始尋找,大於目標,則向右移動,小於目標則向左移動。class solution array ...
劍指offer 陣列中重複的數字
題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。class solution 考慮這種非法輸入 for i...