leetcode 最大连续1的个数 III
Posted hwhworld
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 最大连续1的个数 III相关的知识,希望对你有一定的参考价值。
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
解题思路 通过一个对零计数的变量准确计数,再设计一个起点坐标,在通过循环控制零的数目,来保证与K相同,当不同时则跳过到下一个符合要求的序列中。
1 class Solution { 2 public int longestOnes(int[] A, int K) { 3 int cnt=0; 4 int pos=0; 5 int ans=0; 6 for(int i=0;i<A.length;i++){ 7 if(A[i]==0)cnt++; 8 while(cnt>K){ 9 if(A[pos]==0)cnt--; 10 pos++; 11 } 12 ans=Math.max(ans,i-pos+1); 13 } 14 15 return ans; 16 } 17 }
以上是关于leetcode 最大连续1的个数 III的主要内容,如果未能解决你的问题,请参考以下文章
《LeetCode之每日一题》:82.最大连续1的个数 III
滑动窗口7:Leetcode 1004. 最大连续1的个数 III
javaleetcode1004. 最大连续1的个数 III;2024. 考试的最大困扰度