劍指offer 陣列中重複的數

2021-09-19 16:48:33 字數 519 閱讀 7424

題目描述:

在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。 例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。

開始我考慮的是,先將陣列排序,然後逐個比較,如果有相等的,就說明陣列有重複的數

然後考慮hash的方法,效率更高一點。

class solution 

else

}return false;

}};

其實還有一種方式就是按號找坑的方法

按每個數的座標對應放置數  

如果下乙個數放置時當前坑位已經有數了,那麼說明有重複的數字

class solution 

if (numbers[numbers[i]] != numbers[i])

else

}return false;

}};

劍指offer 《陣列中重複的數 》

詳細描述 在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限制 2 n 100000 考查 陣列 雜...

劍指offer之陣列中重複的數

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。public class solution a numbers i ...

劍指offer 查詢陣列中重複的數

題3 找出陣列中重複的數字,例如,輸出長度為7的陣列,找出陣列中重複的數字 解題思路 法一 先給陣列進行排序,從排序好的陣列中找到重複的數字,時間複雜度o nlogn 法二 利用雜湊表,如果雜湊表裡面 沒有此數字,就把他加入雜湊表,如果有,就找到了,提高了時間效率,時間複雜度是o n 但他是以乙個大...