我的代码:
运行结果 超出了时间限制 时间复杂度为0(n^3)
class Solution {
public int lengthOfLongestSubstring(String s) {
int max =0;
if (s.length()==1) return 1;
for(int i =0;i<s.length()-1;i++){
for(int j =i+1;j<=s.length();j++){
String tmp = s.substring(i, j);
boolean flag = ischongfu(tmp);
if (!flag){
if(tmp.length()>max){
max = tmp.length();
}
}else {
break;
}
}
}
return max;
}
public boolean ischongfu(String str){
char[] strChar = str.toCharArray();
Map ismap = new HashMap();
for (char c :strChar) {
if(ismap.containsKey(c)){
return true;
}else {
ismap.put(c,null);
}
}
ismap = null;
return false;
}
}
改进: 滑动窗口机制