python-leetcode-最大連續1的個數 III

1004. 最大連續1的個數 III - 力扣(LeetCode)

使用滑動窗口的方法來解決這個問題。

思路:

  1. 使用雙指針(滑動窗口),定義左右邊界 leftright
  2. 維護窗口內最多包含 k 個 0。
  3. 當窗口內的 0 超過 k 個時,移動 left 指針,縮小窗口,直到窗口內的 0 個數滿足條件。
  4. 計算窗口的最大寬度,即最長連續 1 的個數。

代碼:

def longestOnes(nums, k):left = 0max_length = 0zero_count = 0for right in range(len(nums)):if nums[right] == 0:zero_count += 1while zero_count > k:if nums[left] == 0:zero_count -= 1left += 1max_length = max(max_length, right - left + 1)return max_length

復雜度分析:

  • 時間復雜度:O(n),其中 nn 是數組的長度,每個元素最多被訪問兩次(一次由 right 訪問,一次由 left 訪問)。
  • 空間復雜度:O(1),僅使用了有限的額外變量。

示例:

nums = [1,1,0,0,1,1,1,0,1,1,0,1]
k = 2
print(longestOnes(nums, k))  # 輸出 8

這個方法通過滑動窗口高效地找到最長的連續 1 的子數組,適用于大規模數據。

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

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

相關文章

Linux中grep、sed和awk常見用法總結

1.概述 Linux系統下,grep、sed和awk三個命令是最常用的、非常強大的文本處理工具,可以用于搜索、替換、過濾、排序等多種操作,掌握這三種工具的用法,可以大大提高我們在Linux下處理文本的效率。 2.grep命令 grep是一種非常常見…

基于Vue3的流程圖繪制庫

流程圖組件的革命者,帶你探索無限可能Vue Flow 基于Vue3的流程圖繪制庫

學習springboot-Bean管理(Bean 注冊,Bean 掃描)

Bean 掃描 可以瀏覽下面的博客鏈接 :spring 學習 (注解)-CSDN博客 在學習spring 注解時,我們使用 Component ,Service,Controller等 這樣的注解,將目標類信息,傳遞給IOC容器,為其創…

spring中將yaml文件轉換為Properties

文章目錄 一 ,概述二,源碼 一 ,概述 借助于spring框架,將yaml文件轉換為Properties 二,源碼 import java.util.Properties;import org.junit.Test; import org.springframework.beans.factory.config.YamlPropertie…

c++ 中的float和double 的區別 開發過程中使用哪個更好

在 C 中,float 和 double 都是用于表示浮點數的數據類型,但它們在精度、存儲空間和性能方面有所不同。 1. float 和 double 的主要區別 特性floatdouble占用內存4 字節(32 位)8 字節(64 位)精度約 6-7 位有…

OpenAI智能體初探:使用 OpenAI Responses API 在 PDF 中實現檢索增強生成(RAG)

大家好,我是大 F,深耕AI算法十余年,互聯網大廠技術崗。 知行合一,不寫水文,喜歡可關注,分享AI算法干貨、技術心得。 歡迎關注《大模型理論和實戰》、《DeepSeek技術解析和實戰》,一起探索技術的無限可能! 引子 在信息爆炸的時代,從大量 PDF 文檔中快速準確地檢索信息…

【MySQL】基本操作 —— DDL

目錄 DDLDDL 常用操作對數據庫的常用操作查看所有數據庫創建數據庫切換、顯示當前數據庫刪除數據庫修改數據庫編碼 對表的常用操作創建表數據類型數值類型日期和時間類型字符串類型 查看當前數據庫所有表查看指定表的創建語句查看指定表結構刪除表 對表結構的常用操作給表添加字…

工廠模式加策略模式 -- 具體實現

這里寫目錄標題 定義接口定義抽象類定義主處理器分支處理器定義工廠demo 定義接口 public interface EntityHandler extends InitializingBean {MatchContentDTO match(MatchEntityDTO matchEntityDTO);String supportEntityType(); }定義抽象類 public abstract class Abstr…

基于Spring Boot的網上寵物店系統的設計與實現(LW+源碼+講解)

專注于大學生項目實戰開發,講解,畢業答疑輔導,歡迎高校老師/同行前輩交流合作?。 技術范圍:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容:…

PHPCMS V9 登錄加密改造

要改造 phpcms 的后臺登錄,使其前端使用加密方式提交,后端解密,你可以采用 RSA 非對稱加密 或 AES 對稱加密 方式來增強安全性。 方案設計 前端加密 生成公私鑰對(推薦使用 RSA)。前端使用公鑰加密密碼,然…

LeetCode 滑動數組統計+至少 2962. 統計最大元素出現至少 K 次的子數組

2962. 統計最大元素出現至少 K 次的子數組 給你一個整數數組 nums 和一個 正整數 k 。 請你統計有多少滿足 「 nums 中的 最大 元素」至少出現 k 次的子數組,并返回滿足這一條件的子數組的數目。 子數組是數組中的一個連續元素序列。 示例 1: 輸入&#…

FANUC機器人幾種常用的通訊網絡及接口

FANUC機器人幾種常用的通訊網絡及接口 Devicenet 網絡通訊接口,接口為5針線 (規定用的機架為 81-84) PROFIBUS 網絡通訊接口,針腳為2針(規定用的機架為 67) Intemet 網絡通訊接口(常用的網線接口&#xf…

CentOS8+Zabbix7.2.4解決中文顯示問題

#cd /usr/share/zabbix/ui/include/ #grep graphfont defines.inc.php define(‘ZBX_GRAPH_FONT_NAME’, ‘graphfont’); // font file name define(‘ZBX_FONT_NAME’, ‘graphfont’); #ll /usr/share/zabbix/ui/assets/fonts/graphfont.ttf lrwxrwxrwx. 1 root root 36 3…

AI自動化編程初探

先說vscodeclinemodelscope方案,后面體驗trae或者cursor再寫寫其它的。vscode和trae方案目前來說是免費的,cursor要用claud需要付費,而且不便宜,當然效果可能是最好的。 vscode方案,我的經驗是最好在ubuntu上&#xff…

101.在 Vue 3 + OpenLayers 使用 declutter 避免文字標簽重疊

1. 前言 在使用 OpenLayers 進行地圖開發時,我們經常需要在地圖上添加點、線、區域等圖形,并給它們附加文字標簽。但當地圖上的標注較多時,文字標簽可能會發生重疊,導致用戶無法清晰地查看地圖信息。 幸運的是,OpenL…

18天 - 常見的 HTTP 狀態碼有哪些?HTTP 請求包含哪些內容,請求頭和請求體有哪些類型?HTTP 中 GET 和 POST 的區別是什么?

常見的 HTTP 狀態碼有哪些? HTTP 狀態碼用于指示服務器對客戶端請求的響應結果,常見的 HTTP 狀態碼可以分為以下幾類: 1. 信息類(1xx) 100 Continue:客戶端應繼續發送請求。101 Switching Protocols&…

IXTUR氣控永磁鐵:以高精度氣控和穩定磁場,為機器人應用提供穩定抓取力

在現代工業生產和物流領域,物料的抓取與搬運是影響生產效率和成本控制的重要環節。傳統夾爪在面對不同材質、形狀和重量的物體時,常常存在適應性差、抓取不穩定、操作復雜等問題,導致生產流程中頻繁出現停機調整,增加了人工干預成…

江科大51單片機筆記【16】AD/DA轉換(下)

寫在前言 此為博主自學江科大51單片機(B站)的筆記,方便后續重溫知識 在后面的章節中,為了防止篇幅過長和易于查找,我把一個小節分成兩部分來發,上章節主要是關于本節課的硬件介紹、電路圖、原理圖等理論知識…

【C++】 —— 筆試刷題day_4

刷題day_4 繼續加油!!! 一、Fibonacci數列 題目鏈接:Fibonacci數列 題目解析 題目要求,輸入一個數N,我們可以對N進行1/-1操作;題目讓我們輸出對N進行至少多少步可以變成Fibonacci數。 這里題目…

IP層之分片包的整合處理---BUG修復

在之前章節中,筆者就IP層之分片包的整合處理進行了概念介紹,以及代碼編寫和仿真,在整體代碼調試環節,筆者發現了一個問題,在本文中,筆者將就這個BUG進行說明,以及進行修復,講解代碼實…