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

2 回答 2

1

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

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

于 2013-09-02T15:24:34.637 回答
1

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

于 2013-09-02T15:25:37.480 回答