leetcode刷題 442 陣列中重複的資料

2022-08-24 02:45:09 字數 793 閱讀 9266

給定乙個整數陣列 a,其中1 ≤ a[i] ≤ n (n為陣列長度), 其中有些元素出現兩次而其他元素出現一次。

找到所有出現兩次的元素。

你可以不用到任何額外空間並在o(n)時間複雜度內解決這個問題嗎?

輸入:

[4,3,2,7,8,2,3,1]

輸出:[2,3]

實現1

先進行排序,然後使用雙指標判斷

邊界情況要注意,輸入為空陣列、乙個元素的陣列情況

def find_duplicates(nums):

"""排序 然後雙指標驗證

"""duplicate_num =

nums_len = len(nums)

pre_pointer = 0

rear_pointer = 1

nums.sort()

while(pre_pointer <= nums_len-2 and nums_len != 0 and nums_len != 1):

if nums[pre_pointer] == nums[rear_pointer]:

pre_pointer += 2

rear_pointer += 2

else:

pre_pointer += 1

rear_pointer += 1

return duplicate_num

test_nums = [1, 2, 3, 3, 4]

find_duplicates(test_nums)

刷題(leetcode陣列相關)

1.兩數之和 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。思路一.遍歷陣列中的每個數,與它後面每個數相加的結果是否等於target var t...

leetcode刷題 陣列 陣列的度

給定乙個非空且只包含非負數的整數陣列 nums,陣列的度的定義是指數組裡任一元素出現頻數的最大值。你的任務是找到與 nums 擁有相同大小的度的最短連續子陣列,返回其長度。示例 1 輸入 1,2,2,3,1 輸出 2 解釋 輸入陣列的度是2,因為元素1和2的出現頻數最大,均為2.連續子陣列裡面擁有相...

Leetcode刷題筆記(C ) 陣列

給定乙個由整數組成的非空陣列所表示的非負整數,在該數的基礎上加一。最高位數字存放在陣列的首位,陣列中每個元素只儲存單個數字。你可以假設除了整數 0 之外,這個整數不會以零開頭。示例 1 輸入 1,2,3 輸出 1,2,4 解釋 輸入陣列表示數字 123。示例 2 輸入 4,3,2,1 輸出 4,3,...