当前位置: 首页 > 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。

相关文章:

  • 基于ASP4644多通道降压技术在电力监测系统中集成应用与发展前景
  • github常用插件
  • 6.23_JAVA_RabbitMQ
  • 使用AI开发招聘网站(100天AI编程实验)
  • 设计模式精讲 Day 12:代理模式(Proxy Pattern)
  • CSS 中aspect - ratio属性的用途及应用
  • 酒店住宿自助入住系统——店铺自动运营—仙盟创梦IDE
  • NIPS-2002《Learning from Labeled and Unlabeled Data with Label Propagation》
  • Java面试核心考点复习指南
  • c++bind和forward完美转化
  • 实现 “WebView2 获取word选中内容
  • [NocoDB] 在局域网中调整Float类型显示精度的部署经验
  • 【笔记】在Cygwin上使用mintty连接wsl
  • DeepLegal AI:智能法律文档审查与合规助手+MVP
  • 保存 QTextEdit 内容打包成一个文件(包含文本和图片)
  • 提示词模板设计:LangGPT的提示词设计框架
  • 《深度解析:如何打造高性能短剧平台?完整技术方案与行业实践》
  • 深入理解PHP中的面向对象编程
  • C3新增特性
  • ps外发光
  • 邢台做移动网站多少钱/洛阳seo网络推广
  • 网站 实例/刷赞网站推广永久
  • 磁县网站推广/手机百度关键词优化
  • 整站优化全网营销/长沙网络营销公司排名
  • 全球网站开发者大会/磁力宅
  • 网站推广视频的服务方案/电商培训内容