13.找到字符串的最长无重复字符串字串
题目描述
给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。
输入
[2,3,4,5]
返回值
4
输入
[2,2,3,4,3]
返回值
3
分析
1.本来我是想使用Set方法,因为Set,不允许重复,自然而然就去掉重复的了,然后在调用size()方法获取大小即可,给出的样例通过了,不能完全通过
2.我就换了个LinkedList,
3.removeFirst();返回出现一次的字符串
4.然后add();将只出现一次的添加
5.size();方法获取到其大小
代码实现
import java.util.*;
public class Solution {
/**
*
* @param arr int整型一维数组 the array
* @return int整型
*/
public int maxLength(int[] arr) {
int maxLength = 0;
LinkedList<Integer> list = new LinkedList<>();
for(int i = 0 ; i < arr.length ; i++){
while (list.contains(arr[i])){
list.removeFirst();
}
list.add(arr[i]);
if (list.size() > maxLength){
maxLength = list.size();
}
}
return maxLength;
}
}