【滑動窗口】LeetCode 1004題解 | 最大連續1的個數 Ⅲ

最大連續1的個數 Ⅲ

  • 一、題目鏈接
  • 二、題目
  • 三、題目解析
  • 四、算法原理
    • 解法一:暴力枚舉 + zero計數器
    • 解法二:滑動窗口
  • 五、編寫代碼
  • 六、時空復雜度

一、題目鏈接

最大連續1的個數 Ⅲ

二、題目

在這里插入圖片描述

三、題目解析

注意題目中說的是最多k次,在一個數組翻轉次數是可以 ≤ k的。

在這里插入圖片描述

四、算法原理

因為翻轉操作太復雜,無需翻轉。所以可以把本題同等轉化為:找0的個數不超過k的最長子數組

解法一:暴力枚舉 + zero計數器

暴力枚舉出所有0的個數不超過k的子數組,并用變量zero記錄0的個數,時刻更新最長長度。


模擬暴力解法的過程,進而發現優化的地方:

right所指為1,zero不統計,right++
right所指為0,zero+=1,right++

在這里插入圖片描述
接下來left++,right回退,開始枚舉以第二個數開始的符合要求的子數組。發現right停在了一樣的位置,再分析發現在藍色區間內開始枚舉的話,right一定會在一樣的位置停下,并且zero還會超過限定次數:

在這里插入圖片描述

綜上得出規律1:找到一個結果后,right不用回退,left跳過這一區間。 此時zero為2,right再接著向右枚舉。規律2:left向右移動結束后,right繼續向右移動。—— 同向雙指針

在這里插入圖片描述

解法二:滑動窗口

在這里插入圖片描述

五、編寫代碼

class Solution {
public:int longestOnes(vector<int>& nums, int k) {int n = nums.size(), left = 0, right = 0, zero = 0, ret = 0;while (right < n){if (nums[right] == 0) zero++;// 進窗口while (zero > k) // 判斷if (nums[left++] == 0) zero--;// 出窗口ret = max(ret, right - left + 1);// 更新結果right++;}return ret;}
};

六、時空復雜度

時間復雜度:O(n)
空間復雜度:O(1)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80553.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80553.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80553.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PyTorch音頻處理技術及應用研究:從特征提取到相似度分析

文章目錄 音頻處理技術及應用音頻處理技術音視頻摘要技術音頻識別及應用 梅爾頻率倒譜系數音頻特征爾頻率倒譜系數簡介及參數提取過程音頻處理快速傅里葉變換(FFT)能量譜處理離散余弦轉換 練習案例&#xff1a;音頻建模加載音頻數據源波形變換的類型繪制波形頻譜圖波形Mu-Law 編…

鴻蒙OSUniApp 實現的語音輸入與語音識別功能#三方框架 #Uniapp

UniApp 實現的語音輸入與語音識別功能 最近在開發跨平臺應用時&#xff0c;客戶要求添加語音輸入功能以提升用戶體驗。經過一番調研和實踐&#xff0c;我成功在UniApp項目中實現了語音輸入與識別功能&#xff0c;現將過程和方法分享出來&#xff0c;希望對有類似需求的開發者有…

2025年衛星遙感行業最新發展趨勢深度分析

一、國內發展趨勢&#xff1a;政策引領與技術突破雙輪驅動 &#xff08;一&#xff09;政策體系持續完善&#xff0c;頂層設計深化行業發展 國家級戰略與標準體系構建 中國政府將衛星遙感產業納入“十四五”規劃核心戰略&#xff0c;明確構建“通導遙”一體化空間基礎設施。20…

SIP協議棧--osip源碼梳理

文章目錄 osiposip主體結構體code main函數 狀態機轉化結構體code狀態轉換 sip事務結構體code osip_dialog結構體code 創建并發送200 OK響應 osip_message結構體code osip_eventcode 打印接收到的SIP消息 osip OSIP&#xff08;Open Source Implementation of SIP&#xff09;…

Linux之Yum源與Nginx服務篇

1.Yum源知識理論總結概括 Yum源概述 Yum 源 即軟件倉庫的標識&#xff0c;里面承載著軟件包集合 Yum源組成 包含模塊 【OS】、【everything】、【EPOL】、【debuginfo】、【source】、【update-source】 【os】:簡稱operator system 它內部包含操作系統的核心組件&#x…

從單體架構到微服務:架構演進之路

引言&#xff1a;當“大貨車”遇上“集裝箱運輸” 在軟件開發領域&#xff0c;單體架構曾像一輛載滿貨物的大貨車&#xff0c;將所有功能打包在一個應用中。但隨著業務復雜度飆升&#xff0c;這輛“大貨車”逐漸陷入泥潭&#xff1a;啟動慢如蝸牛、故障波及全局、升級如履薄冰……

AM32電調學習解讀九:ESC上電啟動關閉全流程波形分析

這是第九篇&#xff0c;前面的文章把各個模塊的實現都介紹了一輪&#xff0c;本章是從運行的角度結合波形圖&#xff0c;把整個流程走一遍。 先看下一運行的配置&#xff0c;我把一些配置關閉了&#xff0c;這樣跑起來會好分析一些&#xff0c;不同配置跑起來效果會有差異。使用…

全球寵物經濟新周期下的亞馬遜跨境采購策略革新——寵物用品賽道成本優化三維路徑

在全球"孤獨經濟"與"銀發經濟"雙輪驅動下&#xff0c;寵物用品市場正經歷結構性增長。Euromonitor數據顯示&#xff0c;2023年全球市場規模突破1520億美元&#xff0c;其中中國供應鏈貢獻度達38%&#xff0c;跨境電商出口增速連續三年超25%。在亞馬遜流量紅…

reshape/view/permute的原理

在pytorch中&#xff0c;Tensor的存儲是行主序的&#xff0c;也就是意味著最后一個維度的元素的存儲時連續的&#xff0c;reshape和view并不改變元素存儲的內存&#xff0c;僅僅改變訪問的間隔&#xff0c;下面舉例說明&#xff1b; 比如一個23的Tensor在內存中的存儲是連續的&…

upload-labs靶場通關詳解:第11關

一、分析源代碼 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array("php","php5","php4","php3","php2","html","htm","phtml"…

L1-7 最短字母串【保姆級詳細講解】

請你設計一個程序&#xff0c;該程序接受起始字母和目標字母作為輸入&#xff0c;通過在字母表中向前或向后移動來計算兩個給定字母之間的最短路徑。然后&#xff0c;程序會沿著最短路徑打印出從起始字母到目標字母的所有字母。例如&#xff0c;如果輸入“c”和“k”作為起始字…

項目QT+ffmpeg+rtsp(三)——延遲巨低的項目+雙屏顯示

文章目錄 前言雙屏顯示widget.cppwidget.h前言 對于復現情況,分為兩種情況 第一種,對于我而言,是直接解壓后,就能直接運行了 第二種,對于師兄而言,需要你構建debug后,會產生這個文件夾,執行的時候,地址應該在這,我猜的,這里面沒有dll,exe程序就找不到dll這些庫,你…

ansible進階06

復雜的循環結構 循環基礎 [studentworktest myansible]$ cat users.yml --- - name: create usershosts: serveratasks:- name: create some usersuser:name: "{{item}}"password: "{{123456|password_hash(sha512)}}"state: presentloop:- zhangsan- li…

Go 模塊版本管理

Go 模塊版本管理指南 1、創建帶注釋的 Git 標簽 基本命令 # 創建帶注釋的標簽 git tag -a v1.0.0 -m "Release version 1.0.0 - initial stable release" -a&#xff1a;創建帶注釋的標簽 -m&#xff1a;添加標簽注釋信息 # 推送標簽到遠程倉庫 git push origin v…

Java—— IO流 第一期

什么是IO流 存儲和讀取數據的解決方案 I&#xff1a;input O&#xff1a;output 流&#xff1a;像水流一樣傳輸數據 IO流的作用 用于讀寫數據(本地文件&#xff0c;網絡) IO流的分類 按照流向分類 輸出流&#xff1a;程序 --> 文件 輸入流&#xff1a;文件 --> 程序 按照…

物聯網安全技術的最新進展與挑戰

隨著物聯網&#xff08;IoT&#xff09;技術的飛速發展&#xff0c;越來越多的設備被連接到互聯網&#xff0c;從智能家居設備到工業控制系統&#xff0c;物聯網正在深刻改變我們的生活和生產方式。然而&#xff0c;物聯網的安全問題也日益凸顯&#xff0c;成為制約其發展的關鍵…

【深度學習基礎】損失函數與優化算法詳解:從理論到實踐

【深度學習基礎】損失函數與優化算法詳解&#xff1a;從理論到實踐 一、引言 1. 損失函數與優化算法在深度學習中的核心作用 在深度學習中&#xff0c;模型訓練的本質是通過不斷調整參數&#xff0c;使模型輸出盡可能接近真實值。這一過程的核心驅動力是損失函數&#xff08;…

mvc-review

review&#xff1a; 1.Servlet生命周期中初始化方法&#xff1a;init(),init(config) public void init(ServletConfig config) throws ServletException { this.config config; this.init(); } 因此&#xff0c;如果我們需要…

YouTube視頻字幕轉成文章算重復內容嗎?

很多創作者誤以為「自己說的話不算抄襲」&#xff0c;卻不知道YouTube自動生成的字幕早已被搜索引擎存檔。 去年就有案例&#xff1a;某美食博主將教程視頻字幕轉為圖文&#xff0c;結果原創度檢測僅42%&#xff0c;導致頁面權重暴跌。 本文揭秘5個實操技巧&#xff1a;從刪除…

R語言數據可視化

R note book 文檔–輸出html格式文檔&#xff0c;plotly不能生成PDF文件 --- title: "R語言數據可視化" output: html_notebook ---在R語言中進行數據可視化是數據分析和呈現的重要環節&#xff0c;R提供了多種強大的繪圖系統和工具。以下是常見的數據可視化方法和示…