3-algorithm练习累加算法

171 阅读1分钟

题目

问题:编写一个将数字数组作为输入值并计算这些数字之和的算法。

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