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

数组题解——​最大子数组和​【LeetCode】(更新版)

基础解法参考,数组题解——最大子数组和​【LeetCode】

动态规划方法:

一、算法思路

  • 用 f 表示“当前以当前元素结尾的最大子数组和”。
  • 每次 f = max(f, 0) + x,表示如果当前累加和小于0就舍弃,从当前元素重新开始累加。
  • 用 ans 记录遍历过程中出现的最大子数组和。

二、时间复杂度和空间复杂度

  • 时间复杂度:O(n),只遍历一次数组。
  • 空间复杂度:O(1),只用到常数个变量。
class Solution:def maxSubArray(self, nums: List[int]) -> int:ans = -inf  # 注意答案可以是负数,不能初始化成 0f = 0for x in nums:f = max(f, 0) + xans = max(ans, f)return ans

举例

nums = [-2, 1, -3, 4, -1, 2, 1, -5, 4]

xf = max(f,0)+xans更新结果
-20 + -2 = -2-2
10 + 1 = 11
-31 + -3 = -21
40 + 4 = 44
-14 + -1 = 34
23 + 2 = 55
15 + 1 = 66
-56 + -5 = 16
41 + 4 = 56

最终返回6。

http://www.lqws.cn/news/498475.html

相关文章:

  • (nice!!!)(LeetCode 每日一题) 2081. k 镜像数字的和 (枚举)
  • (cvpr2025) DefMamba: Deformable Visual State Space Model
  • 008 Linux 开发工具(下) —— make、Makefile、git和gdb
  • VitePress搭建静态博客
  • logstash读取kafka日志写到oss归档存储180天
  • 提示词模板设计:LangGPT的提示词设计框架
  • RK3288 android7.1 将普通串口设置为调试串口
  • WinUI3入门8:解决release版异常 取消优化和裁剪
  • QML革命:下一代GUI开发的核心优势详解
  • WebSocket 端点 vs Spring Bean
  • PyTorch 实现的 GlobalPMFSBlock_AP_Separate:嵌套注意力机制在多尺度特征聚合中的应用
  • LLM 编码器 怎么实现语义相关的 Token 向量更贴近? mask训练:上下文存在 ;; 自回归训练:只有上文,生成模型
  • 601N1 icm45696 串口python读取及显示
  • SQL Server2022版详细安装教程(Windows)
  • Flutter开发中记录一个非常好用的图片缓存清理的插件
  • MATLAB GUI界面设计 第四章——图像的绘制与显示
  • 项目上线(若依前后分离版)
  • Kubernetes安全
  • Frida Hook Android App 点击事件实战指南:从进程识别到成功注入
  • H5新增属性
  • C++ Vector 基础入门操作
  • 技能系统详解(2)——特效表现
  • nnv开源神经网络验证软件工具
  • 【第二章:机器学习与神经网络概述】03.类算法理论与实践-(1)逻辑回归(Logistic Regression)
  • 华大北斗TAU951M-P200单频定位模块 多系统冗余保障永不掉线 物流/车载导航首选
  • 历史项目依赖库Bugfix技巧-类覆盖
  • LED-Merging: 无需训练的模型合并框架,兼顾LLM安全和性能!!
  • Spring Boot:运用Redis统计用户在线数量
  • Flask学习笔记
  • 1.2、CAN总线帧格式