题解 | #最长无重复子数组#

最长无重复子数组

https://www.nowcoder.com/practice/b56799ebfd684fb394bd315e89324fb4

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int maxLength (int[] arr) {
        // write code here
        int min = 0, max = 0;
        List<Integer> list = new ArrayList<>();
        Set<Integer> set;
        int j = 0;

        for(int i = 0; i < arr.length; i++){
            for(; j < arr.length; j++){
                list.add(arr[j]);
                set = new HashSet<>(list);
                if(list.size() > set.size()){
                       j++;
                    break;
                }
                if(j - i > max - min){
                    max = j;
                    min = i;
                }
                if(j == arr.length - 1)
                    return max - min + 1;
            }
            list.remove(Integer.valueOf(arr[i]));
        }

        return max - min + 1;        
    }
}

全部评论
1. list可以remove对象,但是必须是对象 2. 打印浪费时间
点赞 回复 分享
发布于 2024-06-04 18:16 上海

相关推荐

二十岁的编程男神王大...:读博吧兄弟,你这绩点太好了,何必转码,另外哈哈哈真见到有括号标出来985的,这个不标注也知道吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务