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

最长无重复子数组

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

import java.util.*;


public class Solution {
    /**
     * 
     * @param arr int整型一维数组 the array
     * @return int整型
     */
    public int maxLength (int[] arr) {
        // 用map存储已存在数据
        HashMap<Integer,Integer> map = new HashMap();

        // 采用动态区间存储,count为hashmap数据类型个数
        int i = 0,j = 0;

        int count = 0;
        int max = 0;

        while(j < arr.length){
            // 若不存在,count++,并加入map
            if(!map.containsKey(arr[j])){
                map.put(arr[j],1);
                count++;
                // 如果存储个数超过最大值,更改max
                if(count > max){
                    max = count;
                }
            }else{
                // 若存在,i后移并删除对应map
                while(arr[i] != arr[j]){
                    map.remove(arr[i]);
                    count--;
                    i++;
                }
                // 再将i进一位保证无重复元素
                i++;
            }
            j++;
        }

        return max;

    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 14:10
啊啊啊啊好幸福,妈妈是我找工作发疯前的一束光
榕城小榕树:你是我见过最幸福的牛客男孩
点赞 评论 收藏
分享
06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 12:05
俺不中了,BOSS遇到了一个hr,我觉得我咨询的问题都很正常吧,然后直接就被拒绝了???
恶龙战士:你问的太多了,要不就整理成一段话直接问他,一个一个问不太好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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