1. 本题知识点
队列
2. 题目描述
给定一个数组 arr,返回 arr 的最长无的重复子串的长度(无重复指的是所有数字都不相同)。
3. 解题思路
用一个队列,把元素不停的加入到队列中,如果有相同的元素,就把队首的元素移除,这样我们就可以保证队列中永远都没有重复的元素。
4. 代码
public class Solution {
/**
*
* @param arr int整型一维数组 the array
* @return int整型
*/
public int maxLength (int[] arr) {
int result = 0;
Queue<Integer> queue = new LinkedList<>();
for(int c : arr) {
while(queue.contains(c)) {
queue.poll();
}
queue.offer(c);
result = Math.max(result, queue.size());
}
return result;
}
}