这段代码的空间复杂度如何是O(n)?

时间:2013-09-02 15:22:39

标签: algorithm space-complexity

    public static boolean isUniqueChars2(String str) {
        boolean[] char_set = new boolean[256];

        for (int i = 0; i < str.length(); i++) {
            int val = str.charAt(i);
            if (char_set[val])
                return false;

            char_set[val] = true;
        }

        return true;
    }

2 个答案:

答案 0 :(得分:1)

不计算输入字符串,代码具有O(1)空间复杂度。无论输入如何,它都会消耗恒定的空间。

时间复杂度也是O(1),因为循环永远不会执行超过256步。

答案 1 :(得分:1)

输入的大小显然是O(n),但是此函数的内存要求是O(1),因为数组的大小是常量。时间复杂度是O(n),因为它遍历字符串..