Big o 如何找到解决方案的时间和空间复杂性

Big o 如何找到解决方案的时间和空间复杂性,big-o,Big O,我是一个初学者开发人员,仍然不太熟悉大O 这是我对leetcode问题的解决方案,我不确定这个解决方案的时间和空间复杂性 String s = ""; String t = ""; int back = 0; for (int i = S.length() - 1; i >= 0; i--) { if (S.charAt(i) == '#') { back++; continue;

我是一个初学者开发人员,仍然不太熟悉大O

这是我对leetcode问题的解决方案,我不确定这个解决方案的时间和空间复杂性

    String s = "";
    String t = "";
    int back = 0;
    for (int i = S.length() - 1; i >= 0; i--) {
        if (S.charAt(i) == '#') {
            back++;
            continue;
        }
        if (back > 0) {
            back--;
            continue;
        }
        s += "" + S.charAt(i);
    }

    back = 0;
    for (int i = T.length() - 1; i >= 0; i--) {
        if (T.charAt(i) == '#') {
            back++;
            continue;
        }
        if (back > 0) {
            back--;
            continue;
        }
        t += "" + T.charAt(i);        
    }
    return s.equals(t);
    }
}

我假设我的时间复杂度是O(N),不知道空间复杂度是什么。如果时间复杂度不是O(N),为什么不是?另外,我认为时间复杂度不是O(1),因为我将输入值存储在变量中,但我也不确定这一点。

时间复杂度

由于您正在运行循环,您的复杂性将是O(max(len(S),len(T)),更准确地说是O(len(S)+len(T))。因此,如果您假设字符串的长度为n,那么您的复杂性实际上是O(n)

空间复杂性

空间复杂度与时间复杂度相同