题解 | #最长无重复子数组#
最长无重复子数组
https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4
选择了比较简单的方法
对数组进行for循环。
遍历到某个元素,对往后的元素进行第二次for循环。每次遍历把元素存在map中,并且记录当前二次循环的次数,当识别到当前遍历的元素再map中已存在时则退出。最后判断当前二次循环的次数是否是 以往遍历中最大的。如果是则替换resultSize
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param arr int整型一维数组 the array * @return int整型 */ public int maxLength (int[] arr) { int resultSize =0; for(int i=0;i<arr.length;i++){ Map<Integer,Integer> map = new HashMap<Integer,Integer>(); int size =0; for(int j= i;j<arr.length;j++){ if(map.containsKey(arr[j])){ break; } else{ size++; map.put(arr[j],1); } } if(size>resultSize){ resultSize = size; } } return resultSize; } }