首页 > 其他 > 详细

最多包含k种不同整数的子串

时间:2021-02-09 22:11:24      阅读:27      评论:0      收藏:0      [点我收藏+]
private int GetMaxInN(int[] A,int k){
        int len=A.length;
        int l=0,r=0;
        //+1是为了对齐 没有其他作用
        int[] freq=new int[len+1];
        int count=0;
        int res=0;
        //基本工作完成了 开始遍历
        while(r<len){
            if(freq[A[r]]==0){
                count++;
            }
            freq[A[r]]++;
            r++;
            //最巧妙的是还有减的部分
            while(count>k){
                freq[A[l]]--;
                if(freq[A[l]]==0){
                    count--;
                }
                l++;
            }
            res+=r-l+1;
        }
        return res;
    }

 

最多包含k种不同整数的子串

原文:https://www.cnblogs.com/purexww/p/14394099.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!