此函数返回最大字符子集序列。示例输入和输出如下。有人可以帮助解决时间复杂性
function shortenString(str) {
let result = str.charAt(0);
for (let i = 1; i< str.length; i++) {
const c = str.charAt(i);
let j = i - 1;
while (j >= 0) {
const charA = result.charAt(j);
const charB = str.charAt(i);
console.log(`comparing ${charA} to ${charB}`);
if (result.charAt(j) < str.charAt(i)) {
result = result.substring(0, j);
}
j--;
}
result = result + str.charAt(i);
}
return result;
}
答案 0 :(得分:0)
我们可以使用Big O表示法来计算其复杂度here
如果我们看一下代码,则必须进入主循环-for
和while
for循环将进行n次迭代。
同时while循环将进行n(n + 1)/ 2次迭代-表示一系列n个数字的总和。其复杂度由O(n ^ 2);
如果n * n ^ 2 = O(n ^ 3),则代码的复杂性