題目描述
在一個長度為n的數組裡的所有數字都在0到n-1的範圍內。
數組中某些數字是重複的,但不知道有幾個數字是重複的。
也不知道每個數字重複幾次。請找出數組中任意一個重複的數字。
例如,如果輸入長度為7的數組{2,3,1,0,2,5,3},那麼對應的輸出是第一個重複的數字2。
下面給出五種解法:
思路一:利用字符串函數
時間複雜度 O(n)
思路二:利用HashMap用空間換時間(推薦這個)
時間複雜度 O(n)
思路三:排序後從前往後找
時間複雜度 O(nlogn)
思路四:利用計數排序類似思想(推薦這種)
注意題目裡說“所有數字都在0到n-1的範圍內”
時間複雜度 O(n)
思路五:採用異或
時間複雜度 O(n^2)
閱讀更多 明明如月學長 的文章