给定一个由若干 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。
算法:动态规划,双指针

我们用f[i]表示以第i个数字结尾时0的长度,则f[i+1]=f[i]+nums[i]==0。

当0的长度大于k时,我们需要将另一个指针往前移

每次更新两个指针的长度最大值,即为所求

class Solution {
public:int longestOnes(vector<int>& A, int K) {int n=A.size();vector<int> f(n+1,0);int res=0,j=0;for(int i=0; i<n; i++){if(!A[i]){f[i+1]=f[i]+1;while((f[i+1]-f[j])>K)j++;}elsef[i+1]=f[i];res=max(res,i-j+1);}return res;}
};

转载于:https://www.cnblogs.com/programyang/p/11152839.html

LeetCode 1004.最长连续1的个数相关推荐

  1. LeetCode 674. 最长连续递增序列 (滑动窗口 计数法)

    LeetCode 674. 最长连续递增序列 滑动窗口 右边界不断往右移动 左边界收缩条件:当右边界的值小于等于其左边的值时(递减) 左边界收缩到右边界当前位置 class Solution {pub ...

  2. LeetCode 673. 最长递增子序列的个数

    LeetCode 673. 最长递增子序列的个数 文章目录 LeetCode 673. 最长递增子序列的个数 题目描述 一.解题关键词 二.解题报告 1.思路分析 2.时间复杂度 3.代码示例 2.知 ...

  3. 20191023:(leetcode习题)最大连续1的个数 III

    最大连续1的个数 III 题目 大致思路 代码实现 题目 给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 .返回仅包含 1 的最长(连续)子数组的长度. 输入:A ...

  4. LeetCode 673. 最长递增子序列的个数(DP)

    1. 题目 给定一个未排序的整数数组,找到最长递增子序列的个数. 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, ...

  5. LeetCode 128. 最长连续序列(哈希set)

    1. 题目 给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例:输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1 ...

  6. leetcode - 674. 最长连续递增序列

    给定一个未经排序的整数数组,找到最长且连续的的递增序列. 示例 1: 输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3. 尽管 [1,3,5,7] 也 ...

  7. leetcode - 673. 最长递增子序列的个数

    给定一个未排序的整数数组,找到最长递增子序列的个数. 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, 7] 和[1, 3, 5, 7] ...

  8. LeetCode 128. 最长连续序列(Longest Consecutive Sequence)

    题目描述 给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1 ...

  9. 112. Leetcode 673. 最长递增子序列的个数 (动态规划-子序列问题)

    步骤一.确定状态: 确定dp数组及下标含义 dp[i]表示以nums[i]结尾的数组最长递增子序列的长度, count数组, count[i]记 录以nums[i]结尾的数组,最长递增子序列的个数. ...

最新文章

  1. 深度剖析不一样的Redis架构设计!
  2. OpenCV配置 Win7 Win8 VS2010 VS2012
  3. SAP HR模块用的表
  4. fpga项目开发实例_深入浅出玩转FPGA书+视频教程:35课时+源码
  5. visual studio2017调用SDK各个操作步骤的作用
  6. emlog和typecho文章采集插件-简数第三方数据采集
  7. 继向日本捐赠100万只口罩后,马云又向这个国家捐了100万只!
  8. volley全然解析
  9. win10卸载电脑管家就蓝屏_Win10系统运行腾讯软件出现蓝屏TesSafe.sys 解决方案
  10. linux内核源码分析系列文章汇总
  11. 大卫科波菲尔优秀读后感范文4000字
  12. linux 安装核显驱动程序,在Ubuntu系统上安装英特尔核显驱动安装器的方法
  13. 英伟达账号为什么登录不了_n卡的geforce experience登录不了怎么办?
  14. YF3-10L溢流阀的制造
  15. idea报错cannot access com.*.*
  16. echarts 使用 百度地图 加入自定义图标标记
  17. 容联荣膺「金融AI技术引领奖」,助力金融机构搭建智能交互中心
  18. android FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
  19. mac软件卸载不干净怎么回事 mac如何卸载软件干净
  20. 转自小木虫关于论文汇报的PPT

热门文章

  1. 1033 旧键盘打字 (20 分)(c语言)
  2. leetcode(3)---寻找最大字符串
  3. 神经网络前向引擎内存复用技术(基于caffe)
  4. wordpress Oops! That page can’t be found.
  5. HDU - 6599 I Love Palindrome String (回文树+Manacher、回文树+hash)
  6. POJ-2186 Popular Cows (Tarjan缩点) 文末有测试数据
  7. 切换终端_首款搭载鸿蒙系统的终端来了:配自研芯片,能跟手机无缝切换
  8. 使用PowerDesigner 建立mysql数据表
  9. viwer连接不到服务器 vnc_vnc viewer连不上怎么办 vnc viewer连不上的解决方法
  10. 15.4.1 杠杆利用类型参数推断