題目
給定乙個整數陣列 a,其中1 ≤ a[i] ≤ n (n為陣列長度), 其中有些元素出現兩次而其他元素出現一次。
找到所有出現兩次的元素。
你可以不用到任何額外空間並在o(n)時間複雜度內解決這個問題嗎?
示例
解題思路及**
1.思路
根據題意,陣列中元素大小範圍為1-n, 與陣列索引範圍0-(n-1)只相差1,所以我們可以考慮用索引為i的元素來標記元素i+1是否出現過。
在**實現上,對陣列進行遍歷,我們將元素i+1 對應的索引為i的元素進行取反,若遍歷至索引為j的元素為負時,說明其對應的元素j+1已經出現過,即為重複資料,將其儲存在最後需要返回的陣列中即可。
2.**
var findduplicates = function(nums) else if (nums[newindex] < 0)
}return arr;
};
LeetCode442 陣列中重複的資料
給定乙個整數陣列 a,其中1 a i n n為陣列長度 其中有些元素出現兩次而其他元素出現一次。找到所有出現兩次的元素。你可以不用到任何額外空間並在o n 時間複雜度內解決這個問題嗎?示例 輸入 4,3,2,7,8,2,3,1 輸出 2,3 思路 使用額外的同nums陣列空間大小相同的陣列為nums...
leetcode442 陣列中重複的資料
給定乙個整數陣列 a,其中1 a i n n為陣列長度 其中有些元素出現兩次而其他元素出現一次。找到所有出現兩次的元素。你可以不用到任何額外空間並在o n 時間複雜度內解決這個問題嗎?示例 輸入 4 3,2 7,8 2,3 1 輸出 2 3 方法一 遍歷到位置i時,將位置i的元素nums i 和位置...
leetcode 442 陣列中重複的資料
給定乙個整數陣列 a,其中1 a i n n為陣列長度 其中有些元素出現兩次而其他元素出現一次。找到所有出現兩次的元素。你可以不用到任何額外空間並在o n 時間複雜度內解決這個問題嗎?示例 輸入 4,3,2,7,8,2,3,1 輸出 2,3 from typing import list class...