题目
问题:编写一个将数字数组作为输入值并计算这些数字之和的算法。
code
function sumNumber(numbers) {
return numbers[0] + numbers[1] + numbers[2]; // 1 => O(1) => 常数时间复杂度
}
console.log('sumNumber([1, 3, 7])', sumNumber([1, 3, 7]));
function sumNumber(numbers) {
// let result = 0; // 1
// // 1
// for (const number of numbers) {
// console.log('hello'); // n
// result += number; // n
// }
// return result; // 1
return numbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);
}
// T = 1 + 1 + n + n + 1 = 3 + 2n = 3 + 2*n
// T = 2*n
// T = n => O(n) => 线性时间复杂度
console.log('sumNumber([1, 3, 7])', sumNumber([1, 3, 7]));
// sumNumber([1, 3, 7]) 11