645. 錯誤的集合
集合 s 包含從1到 n 的整數。不幸的是,因為資料錯誤,導致集合裡面某乙個元素複製了成了集合裡面的另外乙個元素的值,導致集合丟失了乙個整數並且有乙個元素重複。
給定乙個陣列 nums 代表了集合 s 發生錯誤後的結果。你的任務是首先尋找到重複出現的整數,再找到丟失的整數,將它們以陣列的形式返回。
示例 1:
輸入: nums = [1,2,2,4]
輸出: [2,3]
注意:給定陣列的長度範圍是 [2, 10000]。
給定的陣列是無序的
這裡使用的是東哥的一種比較對照方法。給定陣列長度為n,那麼其對照的索引長度也為n。如果給定的陣列中有重複、缺少值,那麼就會出現兩個數對應同乙個索引的情況和有乙個索引沒有對應的情況。
1#計算出實際真實對應座標
if nums[index]
>0:
#如果該座標的數大於0,反轉
nums[index]
=-nums[index]
else
:#如果該座標的數小於0,那麼說明已經反轉過一次,找到被複製的數
dup =
abs(nums[i]
) mis =-1
for i in
range
(n):
#找到時去的數
if nums[i]
>0:
mis = i+
1return
[dup, mis]
LeetCode645 錯誤的集合
集合s包含從1到n的整數。不幸的是,因為資料錯誤,導致集合裡面某乙個元素複製了成了集合裡面的另外乙個元素的值,導致集合丟失了乙個整數並且有乙個元素重複。給定乙個陣列nums代表了集合s發生錯誤後的結果。你的任務是首先尋找到重複出現的整數,再找到丟失的整數,將它們以陣列的形式返回。示例 1 輸入 nu...
LeetCode 645 錯誤的集合
集合 s 包含從1到 n 的整數。不幸的是,因為資料錯誤,導致集合裡面某乙個元素複製了成了集合裡面的另外乙個元素的值,導致集合丟失了乙個整數並且有乙個元素重複。給定乙個陣列 nums 代表了集合 s 發生錯誤後的結果。你的任務是首先尋找到重複出現的整數,再找到丟失的整數,將它們以陣列的形式返回。示例...
LeetCode 645 錯誤的集合
題目描述 集合 s 包含從1到 n 的整數。不幸的是,因為資料錯誤,導致集合裡面某乙個元素複製了成了集合裡面的另外乙個元素的值,導致集合丟失了乙個整數並且有乙個元素重複。給定乙個陣列 nums 代表了集合 s 發生錯誤後的結果。你的任務是首先尋找到重複出現的整數,再找到丟失的整數,將它們以陣列的形式...