方法
算法思想:动态规划+哈希Map,j-i是 ,dp[i]最长的无重复长度
时间复杂度:O(N)
空间复杂度:O(1)
边界条件:
补充知识: 字符串的s.length(),哈希表的getOrDefault
class Solution {
public int lengthOfLongestSubstring(String s) {
Map<Character,Integer> dic=new HashMap<>();
int res=0,tmp=0;
for(int j=0;j<s.length();j++){
int i=dic.getOrDefault(s.charAt(j),-1); // 获取j对应的元素,在hashmap中访问
dic.put(s.charAt(j),j); //放入j对应的元素
tmp=tmp<j-i?tmp+1:j-i; //最大的。。。
res=Math.max(res,tmp); //返回res和tmp中大的
}
return res;
}
}