LeetCode-无重复字符的最长子串
Posted fyyxt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode-无重复字符的最长子串相关的知识,希望对你有一定的参考价值。
记 无重复字符的最长子串
写了你妈2小时写出来的垃圾算法
public static int lengthOfLongestSubstring(String s) {
char t[] = s.toCharArray();
int count = 0;
int max =0;
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
Map<Integer, Integer> map2 = new HashMap<Integer, Integer>(); //核心
for(int i =0;i<s.length();i++) {
if(map.get(t[i]-'a')==null) {
map.put(t[i]-'a',i);
map2.put(i,t[i]-'a');
count++;
if(count>max) {
max = count;
}
}else {
count = i-map.get(t[i]-'a'); //核心
System.out.println(map.get(t[i]-'a'));
int k = map.get(t[i]-'a');
int temp = -1; //核心清理
for(int j =0; j<=k ;j++) {
if(map2.get(j)!=null) {
temp = map2.get(j);
map.remove(temp);
map2.remove(j);
map.put(t[i]-'a',i);
map2.put(i,t[i]-'a');
}
temp = -1;
}
}
System.out.println(count+"---"+i+"--"+t[i]);
}
System.out.println("--------------");
return max;
}
以上是关于LeetCode-无重复字符的最长子串的主要内容,如果未能解决你的问题,请参考以下文章