645 錯誤的集合 easy

2022-06-13 06:15:08 字數 719 閱讀 1980

集合 s 包含從1到 n 的整數。不幸的是,因為資料錯誤,導致集合裡面某乙個元素複製了成了集合裡面的另外乙個元素的值,導致集合丟失了乙個整數並且有乙個元素重複。

給定乙個陣列 nums 代表了集合 s 發生錯誤後的結果。你的任務是首先尋找到重複出現的整數,再找到丟失的整數,將它們以陣列的形式返回。

示例 1:

輸入: nums = [1,2,2,4]

輸出: [2,3]

注意:給定陣列的長度範圍是 [2, 10000]。

給定的陣列是無序的。

思路:• 此題和 "448.找到所有陣列中消失的數字" 類似, 區別只是這道題只有乙個多餘和缺失,時間複雜度:o(n)

• 遍歷陣列中的每乙個值,取其絕對值,將這個值作為陣列的下標,將這個下標的值設為相反數;

• 設定相反數之前,判斷下標中的值是否已經為負數,如果是,表明這個值就是重複的,因為之前已經有同樣的下標設定過了;

• 最後再遍歷一遍陣列,如果某乙個下標的值為正數,表明這個下標就是原陣列中缺失的值,因為沒有值來將這個下標設定為負數;

• 總結:第一次用值表示索引,第二次用索引做裁判看哪些數字缺失!

class

solution

for(int i = 0; i < nums.length; i++)

return

res;

}}

645 錯誤的集合

鏈結 集合 s 包含從1到 n 的整數。不幸的是,因為資料錯誤,導致集合裡面某乙個元素複製了成了集合裡面的另外乙個元素的值,導致集合丟失了乙個整數並且有乙個元素重複。給定乙個陣列 nums 代表了集合 s 發生錯誤後的結果。你的任務是首先尋找到重複出現的整數,再找到丟失的整數,將它們以陣列的形式返回...

645 錯誤的集合

集合 s 包含從1到 n 的整數。不幸的是,因為資料錯誤,導致集合裡面某乙個元素複製了成了集合裡面的另外乙個元素的值,導致集合丟失了乙個整數並且有乙個元素重複。給定乙個陣列 nums 代表了集合 s 發生錯誤後的結果。你的任務是首先尋找到重複出現的整數,再找到丟失的整數,將它們以陣列的形式返回。示例...

645 錯誤的集合

集合 s 包含從1到 n 的整數。不幸的是,因為資料錯誤,導致集合裡面某乙個元素複製了成了集合裡面的另外乙個元素的值,導致集合丟失了乙個整數並且有乙個元素重複。給定乙個陣列 nums 代表了集合 s 發生錯誤後的結果。你的任務是首先尋找到重複出現的整數,再找到丟失的整數,將它們以陣列的形式返回。示例...