劍指offer 03 陣列中重複的數字

2021-10-21 11:05:59 字數 598 閱讀 9328

注意乙個用法,hashset的add方法,如果要插入的元素產生了重複,則直接返回false。

class

solution

}return res;

}}

遍歷陣列,對號入座。

如果當前元素已經在對應下標的位置裡,則跳過;

如果當前元素不在對應下標的位置,則需要置換。置換前,先判斷對應下標的位置是否已經放了滿足條件的元素(即nums[i] == i)。若已經放了,則直接返回重複元素,否則就置換到對應位置,並進行下一輪判斷。

class

solution

//否則就進行置換

int tmp = nums[nums[i]];

nums[nums[i]

]= nums[i]

; nums[i]

= tmp;}}

return-1;}}

劍指offer03 陣列中重複的數字

在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3限制 2 n 100000 首先拿到這道題最先想到的是...

劍指Offer03 陣列中重複的數字

劍指offer典型題整理 爭取做最好的題解 題目描述 在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限...

劍指offer 03陣列中重複的數字

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