最大字符子序列的时间复杂度

时间:2019-02-28 08:09:39

标签: time-complexity

此函数返回最大字符子集序列。示例输入和输出如下。有人可以帮助解决时间复杂性

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;
}

1 个答案:

答案 0 :(得分:0)

我们可以使用Big O表示法来计算其复杂度here

如果我们看一下代码,则必须进入主循环-forwhile

for循环将进行n次迭代。

同时while循环将进行n(n + 1)/ 2次迭代-表示一系列n个数字的总和。其复杂度由O(n ^ 2);

如果n * n ^ 2 = O(n ^ 3),则代码的复杂性