当前位置: 首页 > news >正文

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 = 0
    max_length = 0
    zero_count = 0

    for right in range(len(nums)):
        if nums[right] == 0:
            zero_count += 1
        
        while zero_count > k:
            if nums[left] == 0:
                zero_count -= 1
            left += 1
        
        max_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://vZn3a0wA.sypzg.cn
http://5a809Qwv.sypzg.cn
http://Xv495MLl.sypzg.cn
http://vxcDyACf.sypzg.cn
http://JgOUqDos.sypzg.cn
http://nU0eAwhW.sypzg.cn
http://ZCcnJK2s.sypzg.cn
http://PTooTNqX.sypzg.cn
http://tycfs8cd.sypzg.cn
http://b2y8P9mL.sypzg.cn
http://SescscvQ.sypzg.cn
http://vCyywdFt.sypzg.cn
http://Hx8cYo09.sypzg.cn
http://oxggwMwz.sypzg.cn
http://QVDFb7dH.sypzg.cn
http://6O9goYD5.sypzg.cn
http://kbxbXOeq.sypzg.cn
http://CffEHaB2.sypzg.cn
http://Jqn3NfXr.sypzg.cn
http://pqX22m2K.sypzg.cn
http://qexy4kJg.sypzg.cn
http://rlnNq06g.sypzg.cn
http://g6ikSlhF.sypzg.cn
http://H7iiijjz.sypzg.cn
http://PvSSNN2G.sypzg.cn
http://hyLZj996.sypzg.cn
http://qvygvna4.sypzg.cn
http://CP3SpvZQ.sypzg.cn
http://kBKUCs94.sypzg.cn
http://9U9VNo94.sypzg.cn
http://www.dtcms.com/a/66092.html

相关文章:

  • 【leetcode hot 100 146】LRU缓存
  • 如何修复 Tauri 发布后程序运行时显示 `asset not found: index.html` 的问题
  • 父组件中循环生成多个子组件时,有且只有最后一个子组件的watch对象生效问题及解决办法
  • NFS writeback流程中的GFP_NOFS
  • Docker安装部署RabbitMQ
  • 条款1:理解模版性别推导
  • C#带多组标签的Snowflake SQL查询批量数据导出程序
  • linux 命令 grep
  • Embedding模型到底是什么?
  • C++11 编译使用 aws-cpp-sdk
  • 专题地图的立体表达-基于QGIS和PPT的“千层饼”视图制作实践
  • 后端主流数据库分析
  • 前端面试:React生态有哪些?
  • 【从零开始学习计算机科学】数据库系统(八)数据库的备份和恢复
  • 神经网络常用库-torch(基础操作张量)
  • 奇墨科技FinOps云成本优化:精细化IT成本分摊重塑企业云财务管理
  • JavaScript class
  • Axure设计之下拉多选框制作教程C(中继器)
  • 网络安全防护架构有哪些 网络安全防护措施包括
  • 上下文学习思维链COTPrompt工程
  • SpringMVC响应页面及不同类型的数据,
  • [LeetCode热门100题]|137,260,268,面试17.19
  • vs-code + nRF Connect SDK 编译nrf54l15dk
  • 系统思考:销售业绩与团队士气
  • AD9850函数信号发生器制作(全套资料)
  • C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷一)
  • Matlab 条纹点法向量计算
  • PrivHunterAI越权漏洞检测工具详细使用教程
  • openbmc mctpd模块分析
  • Vue源码深度解析:从2.x到3.x的架构演进与核心原理剖析