时间复杂度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; }