【发布时间】:2020-10-22 09:39:58
【问题描述】:
目前我正在学习数据结构和算法。我想知道如何计算空间复杂度和函数的大 O。我编写了一个程序,该程序将 Capabilities 数组的每个索引的第一个字母。请建议我更好的方法。
function capitalizeFirst(arr){
let result = [];
function helper(array) {
if (array.length === 0) return;
let upperCassed = array[0][0].toUpperCase();
array[0].split(array[0][0])
array[0] = array[0].split(array[0][0])
array[0][0] = upperCassed
result.push(array[0].join(''));
helper(array.splice(1));
}
helper(arr);
return result;
}
console.log(capitalizeFirst(['banana', 'orange', 'mango']));
// ['banana', 'orange', 'mango']
// ['Banana', 'Orange', 'Mango']
【问题讨论】:
-
我认为这是 O(1),因为它从不循环,并且只访问过第一项。
-
@evolutionxbox 除了它在整个数组上递归。因此必须是
O(n)(我想!) -
@Jamiec 好地方。结果推送后我没有注意到调用。
-
它是 O(n),因为它接触每个元素并且每个元素只接触一次。每个元素的运算是O(1),所以总体来说,它需要O(n)
-
我明白了。非常感谢@evolutionxbox
标签: javascript arrays data-structures