最长无重复字符子串

时间复杂度O(n),空间复杂度最大是O(n),map里key存放的是字符串中某个字符,value为这个字符最近出现的位置。


private static int maxUnique(String str){
        if(str == null || str.length() == 0){
            return 0;
        }
        int[] map = new int[256];
        for(int i=0;i<256;i++){
            map[i] = -1;
        }
        int max = 0;
        int pre=-1;
        char[] arr = str.toCharArray();
        for(int i=0;i<str.length();i++){
            pre = Math.max(pre,map[arr[i]]);
            max = Math.max(max,i-pre);
            map[arr[i]] = i;
        }
        return max;
    }


猜你喜欢

转载自blog.csdn.net/u013014724/article/details/77940858