本文共 799 字,大约阅读时间需要 2 分钟。
题目描述
给定一个数组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; LinkedListlist = 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; }}
转载地址:http://xkjki.baihongyu.com/