
解题思路:滑动窗口模板题
时间复杂度:O(n),n为字符串的长度
空间复杂度:O(n),n为字符串的长度
class Solution {public int lengthOfLongestSubstring(String s) {int len = s.length();int ans = 0; //记录最终结果int left = 0, right = 0;Map<Character, Integer> map = new HashMap<>();while(right < len){char ch = s.charAt(right);//扩大滑动窗口right++;map.put(ch, map.getOrDefault(ch, 0) + 1);//检测滑动窗口是否存在重复字符while(map.getOrDefault(ch, 0) > 1){//如果存在重复字符,那么将左指针+1char ch1 = s.charAt(left);left++;map.put(ch1, map.getOrDefault(ch1, 0) - 1);}//更新结果ans = Math.max(ans, right - left);}return ans;}}
