无重复字符的最长字串 Java
class Solution {public int lengthOfLongestSubstring(String s) {char[] chars = s.toCharArray();int n = chars.length;List<Character> list = new ArrayList();int l = 0, r = 0;int max = 0;// 滑动窗口while (l < n && r < n) {if (!list.contains(chars[r])) {// 表中没有重复的,添加并更新最大长度,继续移动右指针list.add(chars[r]);max = Math.max(max, list.size());r++;} else {// 表中有重复的,删除左指针上的元素,并移动左指针list.remove((Character) chars[l]);l++;}}return max;}
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~