20191023:(leetcode习题)最大连续1的个数 III
最大连续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。
大致思路
- 滑动窗口即可,当窗口中的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相关推荐
- leetcode 1004. 最大连续1的个数 III(滑动窗口)
给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 . 返回仅包含 1 的最长(连续)子数组的长度. 示例 1: 输入:A = [1,1,1,0,0,0,1,1,1, ...
- leetcode —— 1004. 最大连续1的个数 III
给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 . 返回仅包含 1 的最长(连续)子数组的长度. 示例 1: 输入:A = [1,1,1,0,0,0,1,1,1, ...
- 2022-2-15 Leetcode 1004.最大连续1的个数III
我的想法纠结于要计算出连续的 0 和连续 1 的子串的长度,然后再穷举组合. 其实只需要任意截取一段,看下这一段当中的 0 的个数是否大于 k. int longestOnes(vector<i ...
- 滑动窗口7:Leetcode 1004. 最大连续1的个数 III
题目要求: 给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 . 返回仅包含 1 的最长(连续)子数组的长度. 示例 1:输入:A = [1,1,1,0,0,0,1 ...
- LeetCode 1004. 最大连续1的个数 III(双指针+滑动窗口)
题目描述 给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 . 返回仅包含 1 的最长(连续)子数组的长度. 示例 1: 输入:A = [1,1,1,0,0,0,1 ...
- C++描述 LeetCode 485. 最大连续1的个数
C++描述 LeetCode 485. 最大连续1的个数 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯 ...
- LeetCode 487. 最大连续1的个数 II(滑动窗口)
文章目录 1. 题目 2. 解题 1. 题目 给定一个二进制数组,你可以最多将 1 个 0 翻转为 1,找出其中最大连续 1 的个数. 示例 1: 输入:[1,0,1,1,0] 输出:4 解释:翻转第 ...
- leetcode 485. 最大连续1的个数
给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 解题思路 遇到0时 ...
- 【Leetcode数组--子数组--滑动窗口】209. 长度最小的子数组 904. 水果成篮 1004. 最大连续1的个数 III 76. 最小覆盖子串(有数组操作中重要的方法:滑动窗口!!!!)
文章目录 Leetcode209 1.问题描述 2.解决方案 解法一:两个错误思路的算法 解法二:暴力 解法三:滑动窗口法(O(n)) Leetcode904 1.问题描述 2.解决方案 Leetco ...
最新文章
- 工具库 --- Validator (JS正则)
- 【剑指offer-Java版】26复杂链表的复制
- 对计算机应用的认识100,计算机应用基础
- Java基础知识强化83:System类之gc()方法(垃圾回收)以及和finalize()区别
- 【测试点分析】1088 三人行 (20分)_29行代码AC
- 微软不愿意提及的软肋:Win10的语音识别
- 缺陷检测算法matlab,MATLAB 基于模板匹配的玻璃瓶口缺陷检测
- 2021华为软挑赛题_思路分析——实时更新,做多少更多少(八)
- 【状压DP】易懂讲解状态压缩/状态压缩DP
- linux 卸载keepalived,centos7下keepalived1.4.0安装启动卸载
- FCM算法理论及其Python实现
- win10关机慢!windows10关机慢
- openssl自签名CA证书
- 基于matlab的汽车牌照识别程序
- 安卓Zygote详解
- CS61A Proj 1
- 提高制作PPT效率,让这些资源来帮你
- Android 节操播放器 JCVideoPlayer视频播放器
- 数据与广告系列二十四:效果广告后定向时代如何逆流而上
- MIT6.S081操作系统实验——操作系统是如何在qemu虚拟机中启动的?
热门文章
- 华为否认今年将推出搭载鸿蒙系统手机;苹果或在 3 年内推出 5G 基带芯片;Node.js 12.12.0 发布 | 极客头条...
- .NPT 扩展名格式文件类型及打开方式分析:首次渗入 XR 内容领域
- 如何简单粗暴地上手 TensorFlow 2.0?
- 谁说大龄程序员不能学 Java?
- 为前端工程之崛起而编程!
- 最强 IDE 之争:Eclipse 还是没超过 Visual Studio、Xcode 回温
- 黑客瞄准美国 ATM 机,疯狂窃取超百万美元资金
- java+ext.ajax,[转载]Ext Ajax:怎么调用Ext.Ajax.request方法和使用Java Servlet进行处理
- java调用方法出现i 2a_性能-Java方法调用与使用变量
- MDC机制实现日志的链路追踪