zoukankan      html  css  js  c++  java
  • LeetCode#p1004-最大连续的1的个数

    package shuangzhizhen;
    /*
    1004. 最大连续1的个数 III
    给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。
    
    返回仅包含 1 的最长(连续)子数组的长度。
    
    
    
    示例 1:
    
    输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2
    输出:6
    解释:
    [1,1,1,0,0,1,1,1,1,1,1]
    粗体数字从 0 翻转到 1,最长的子数组长度为 6。
    示例 2:
    
    输入:A = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], K = 3
    输出:10
    解释:
    [0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1]
    粗体数字从 0 翻转到 1,最长的子数组长度为 10。
    
    
    提示:
    
    1 <= A.length <= 20000
    0 <= K <= A.length
    A[i] 为 0 或 1
              解题思路:
                  维护一个滑动窗口
                  当 A[right] = 1 时,left 不变,right 继续移动
                  当 A[right] = 0 时,
                    0 的数量在 K 的范围内,left 不变,right 继续移动
                    0 的数量 > K,
                       当 A[left] == 0 时,即 left 指向了一个零,只需要 left 右移一格,就可以减少一个零
                       当 A[left] == 1 时,即此时窗口内包了 K 个零,需要先移动至下个零,再右移一格才能减少一个零
    
    
     */
    public class p1004 {
        public static int longestOnes(int[] A, int K) {
            int len=A.length;
            int left=0,right=0,res=0;
            for(;right<len;right++){
                if(A[right]==0){
                    if(K>0){
                        K--;
                    }
                    else {
                        while (A[left]==1)left++;
                        left++;
                    }
                }
                res=Math.max(res,right-left+1);
    
            }
            return res;
        }
    
        public static void main(String[] args) {
            int a[]={0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1};
            System.out.println(longestOnes(a,3));
        }
    }
    

      运行结果:

  • 相关阅读:
    关于将so 打包入APK的问题
    求 在独立service 中 调用contentprovider的方法
    ndk 环境下 c版 md5
    请教大牛们一个问题
    编写 service 与导出 jar 时注意的问题
    引入已编译好的动态库
    PHP 日期格式说明
    Ocaml 插件
    【转】简单至极的 PHP 缓存类
    PHP mysqlnd cannot connect to MySQL 4.1+ using old authentication
  • 原文地址:https://www.cnblogs.com/jifeng0902/p/13269746.html
Copyright © 2011-2022 走看看