LeetCode 487. 最大连续1的个数 II(滑动窗口)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 487. 最大连续1的个数 II(滑动窗口)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給定一個二進制數組,你可以最多將 1 個 0 翻轉為 1,找出其中最大連續 1 的個數。
示例 1: 輸入:[1,0,1,1,0] 輸出:4 解釋:翻轉第一個 0 可以得到最長的連續 1。當翻轉以后,最大連續 1 的個數為 4。注: 輸入數組只包含 0 和 1. 輸入數組的長度為正整數,且不超過 10,000進階:
如果輸入的數字是作為 無限流 逐個輸入如何處理?
換句話說,內存不能存儲下所有從流中輸入的數字。您可以有效地解決嗎?
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/max-consecutive-ones-ii
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { public:int findMaxConsecutiveOnes(vector<int>& nums) {int k = 1, i = 0, j = 0, maxlen = 0;for( ; j < nums.size(); ++j){if(nums[j]==0){ k--;while(k < 0)//要維持窗口內可替換的次數 >= 0{if(nums[i++]==0)k++;}}maxlen = max(maxlen,j-i+1);}return maxlen;} };104 ms 33.5 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 487. 最大连续1的个数 II(滑动窗口)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1236. 网络爬虫(
- 下一篇: LeetCode MySQL 1421.