最大连续1的个数 III

  • 题目
  • 大致思路
  • 代码实现

题目

  • 给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 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。
输入: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. 滑动窗口即可,当窗口中的0的个数大于K时,将窗口左移,左移时看移出去的时候是1还是0,是0记得将0的个数减一,是1则不需要,最终将滑动窗口的最大值输出即可。

代码实现

package com.immunize.leetcode.longestOnes;/*** 最大1的个数* * @author Mr IMMUNIZE**/
public class Solutioin {public static int longestOnes(int[] A, int K) {if (A.length == 0)return 0;int left = 0;int count = 0;int max = 0;for (int i = 0; i < A.length; i++) {// 逢0计数加一if (A[i] == 0) {count++;}// 超过K时 若左边界为0,则需要移动左边界,出0时记得将计数-1,若为1,则直接右移即可。while (count > K) {if (A[left] == 0) {left++;count--;} else {left++;}}// 更新max即可max = Math.max(max, i - left + 1);}return max;}
}

20191023:(leetcode习题)最大连续1的个数 III相关推荐

  1. leetcode 1004. 最大连续1的个数 III(滑动窗口)

    给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 . 返回仅包含 1 的最长(连续)子数组的长度. 示例 1: 输入:A = [1,1,1,0,0,0,1,1,1, ...

  2. leetcode —— 1004. 最大连续1的个数 III

    给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 . 返回仅包含 1 的最长(连续)子数组的长度. 示例 1: 输入:A = [1,1,1,0,0,0,1,1,1, ...

  3. 2022-2-15 Leetcode 1004.最大连续1的个数III

    我的想法纠结于要计算出连续的 0 和连续 1 的子串的长度,然后再穷举组合. 其实只需要任意截取一段,看下这一段当中的 0 的个数是否大于 k. int longestOnes(vector<i ...

  4. 滑动窗口7:Leetcode 1004. 最大连续1的个数 III

    题目要求: 给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 . 返回仅包含 1 的最长(连续)子数组的长度. 示例 1:输入:A = [1,1,1,0,0,0,1 ...

  5. LeetCode 1004. 最大连续1的个数 III(双指针+滑动窗口)

    题目描述 给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 . 返回仅包含 1 的最长(连续)子数组的长度. 示例 1: 输入:A = [1,1,1,0,0,0,1 ...

  6. C++描述 LeetCode 485. 最大连续1的个数

    C++描述 LeetCode 485. 最大连续1的个数   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯 ...

  7. LeetCode 487. 最大连续1的个数 II(滑动窗口)

    文章目录 1. 题目 2. 解题 1. 题目 给定一个二进制数组,你可以最多将 1 个 0 翻转为 1,找出其中最大连续 1 的个数. 示例 1: 输入:[1,0,1,1,0] 输出:4 解释:翻转第 ...

  8. leetcode 485. 最大连续1的个数

    给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 解题思路 遇到0时 ...

  9. 【Leetcode数组--子数组--滑动窗口】209. 长度最小的子数组 904. 水果成篮 1004. 最大连续1的个数 III 76. 最小覆盖子串(有数组操作中重要的方法:滑动窗口!!!!)

    文章目录 Leetcode209 1.问题描述 2.解决方案 解法一:两个错误思路的算法 解法二:暴力 解法三:滑动窗口法(O(n)) Leetcode904 1.问题描述 2.解决方案 Leetco ...

最新文章

  1. 工具库 --- Validator (JS正则)
  2. 【剑指offer-Java版】26复杂链表的复制
  3. 对计算机应用的认识100,计算机应用基础
  4. Java基础知识强化83:System类之gc()方法(垃圾回收)以及和finalize()区别
  5. 【测试点分析】1088 三人行 (20分)_29行代码AC
  6. 微软不愿意提及的软肋:Win10的语音识别
  7. 缺陷检测算法matlab,MATLAB 基于模板匹配的玻璃瓶口缺陷检测
  8. 2021华为软挑赛题_思路分析——实时更新,做多少更多少(八)
  9. 【状压DP】易懂讲解状态压缩/状态压缩DP
  10. linux 卸载keepalived,centos7下keepalived1.4.0安装启动卸载
  11. FCM算法理论及其Python实现
  12. win10关机慢!windows10关机慢
  13. openssl自签名CA证书
  14. 基于matlab的汽车牌照识别程序
  15. 安卓Zygote详解
  16. CS61A Proj 1
  17. 提高制作PPT效率,让这些资源来帮你
  18. Android 节操播放器 JCVideoPlayer视频播放器
  19. 数据与广告系列二十四:效果广告后定向时代如何逆流而上
  20. MIT6.S081操作系统实验——操作系统是如何在qemu虚拟机中启动的?

热门文章

  1. 华为否认今年将推出搭载鸿蒙系统手机;苹果或在 3 年内推出 5G 基带芯片;Node.js 12.12.0 发布 | 极客头条...
  2. .NPT 扩展名格式文件类型及打开方式分析:首次渗入 XR 内容领域
  3. 如何简单粗暴地上手 TensorFlow 2.0?
  4. 谁说大龄程序员不能学 Java?
  5. 为前端工程之崛起而编程!
  6. 最强 IDE 之争:Eclipse 还是没超过 Visual Studio、Xcode 回温
  7. 黑客瞄准美国 ATM 机,疯狂窃取超百万美元资金
  8. java+ext.ajax,[转载]Ext Ajax:怎么调用Ext.Ajax.request方法和使用Java Servlet进行处理
  9. java调用方法出现i 2a_性能-Java方法调用与使用变量
  10. MDC机制实现日志的链路追踪