題目描述:
集合 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;
};