[leetcode]缺失數字[javascript]
阿新 • • 發佈:2019-01-08
https://leetcode-cn.com/problems/missing-number/
描述
給定一個包含 0, 1, 2, ..., n
中 n_n 中沒有出現在序列中的那個數。
示例 1:
輸入: [3,0,1]
輸出: 2
示例 2:
輸入: [9,6,4,2,3,5,7,0,1]
輸出: 8
說明:
你的演算法應具有線性時間複雜度。你能否僅使用額外常數空間來實現?
分析
最容易理解得是直接遍歷看index是否在陣列中。
var missingNumber = function(nums) {
let len = nums.length
for (let i = 0;i < len;i++) {
if (nums.indexOf(i) === -1) {
return i
}
}
return len
};
最簡單的是等差數列求和,減去陣列的和,就是缺的值
陣列的求和使用了reduce迭代方法。
var missingNumber = function(nums) {
let len = nums.length
return (1 + len) * len / 2 - nums.reduce((acc, curr) => acc + curr)
};
參考資料
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce