LeetCode 645 錯誤的集合

2021-10-10 09:53:18 字數 832 閱讀 4099

題目描述

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

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

示例 1:

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

輸出: [2,3]

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

給定的陣列是無序的。

解題思路

本題使用原地雜湊演算法,所謂原地雜湊演算法就是建立 [陣列待查詢的項] 和 [對應下標] 的對映關係,然後把所有項都放到應該放到的位置,這就可以通過檢視 [恢復後陣列中的項] 和 [其下標] 是否滿足該對映關係,來間接得到每個項出現的次數。

在一些題目中,要求在 [不使用額外空間] 的條件下實現,那麼此時只能通過原地修改陣列,來反映出原陣列每項出現的次數。

原地雜湊演算法主要應用在範圍為[0,nums.size()]的陣列解法中,將陣列元素本身作為nums的下標,即nums[nums[i]]

**實現

class

solution

}while

(sum1==

++i)

;return;}

};

LeetCode645 錯誤的集合

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

LeetCode 645 錯誤的集合

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

leetcode 645 錯誤的集合

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