中等 LeetCode 442 陣列中重複的資料

2021-10-05 17:30:44 字數 555 閱讀 5733

題目

給定乙個整數陣列 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...