前言
牛客网算法篇,“上周考过”中第四题(第三题比较简单,跳过),最长无重复子串。
正文
题目描述
给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。
输入样例
[2,3,4,5]
输出样例
4
分析
像我这样的猛男看到这样的题目必须上一波暴力法去探探它的时间要求底线。
暴力法思路:遍历数组的每一个元素,然后开始从当前元素再往后遍历一直找到所有不重复的子串,最后比较拿到最长长度。
核心代码如下
public int maxLength (int[] arr) {
// write code here
int max = 0;
for(int i=0;i<arr.length-max;i++){
int count = 1;
// 这里使用HashSet而不是ArrayList的原因是,HashSet.contains()方法的时间复杂度为O(1),而Array