题解 | #最长无重复子串#
最长无重复子串
http://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
滑动窗口思想
public int maxLength (int[] arr) {
// write code here
Map<Integer, Integer> map = new HashMap<>();
int res = 0;
// 表示窗口的最左侧
int left = 0;
for (int i = 0; i < arr.length; i++) {
if (map.containsKey(arr[i])) {
// 如果遇到重复元素,更新窗口大小
left = Math.max(left, map.get(arr[i]) + 1);
}
map.put(arr[i], i);
res = Math.max(res, i - left + 1);
}
return res;
}