Leetcode 645: 錯誤的集合

題目描述:

集合 S 包含從1到 n 的整數。不幸的是,因爲數據錯誤,導致集合裏面某一個元素複製了成了集合裏面的另外一個元素的值,導致集合丟失了一個整數並且有一個元素重複。

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

示例 1:

輸入: nums = [1,2,2,4]
輸出: [2,3]
注意:

給定數組的長度範圍是 [2, 10000]。
給定的數組是無序的。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/set-mismatch
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

 

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var findErrorNums = function(nums) {
    let n = nums.length, res = [];
    let sum1 = (n*(n+1))/2;
    let sum2 = [...new Set(nums)].reduce((prev, curr) => curr + prev, 0);
    let sum3 = nums.reduce((prev, curr) => curr + prev, 0);
    res.push(sum3-sum2, sum1-sum2);
    return res;
};

 

發佈了198 篇原創文章 · 獲贊 14 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章