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

Leetcode刷题记录24——最大子数组和

题源:https://leetcode.cn/problems/maximum-subarray/description/?envType=study-plan-v2&envId=top-100-liked

题目描述:
在这里插入图片描述

思路一:
使用经典的动态规划算法——Kadane 算法

  • 初始化变量:
    • max_sum:用于记录当前找到的最大子数组和。
    • current_sum:用于记录当前子数组的和。
  • 从第二个元素开始遍历数组:
    • 对于每个元素,更新 current_sum 为 current_sum + nums[i] 和 nums[i] 中的较大值。
    • 更新 max_sum 为 current_sum 和 max_sum 中的较大值。
  • 返回 max_sum。
  • 具体来说,对于数组中的每个元素,Kadane算法都会做出以下决策:
    • 如果把当前元素加入现有的子数组中(即当前元素加上current_sum),是否会形成一个更大的子数组和?如果是,则更新current_sum为current_sum + num。
    • 如果不是,那么就从当前元素重新开始一个新的子数组,因为单凭当前元素就能构成目前为止最大的子数组和

代码实现如下:

class Solution(object):def maxSubArray(self, nums):""":type nums: List[int]:rtype: int"""max_sum = nums[0]current_sum = nums[0]for i in range(1, len(nums)):current_sum = max(nums[i], nums[i]+current_sum)max_sum = max(max_sum, current_sum)return max_sum

执行时间如下:
在这里插入图片描述

http://www.xdnf.cn/news/3240.html

相关文章:

  • Java SE(6)——类和对象
  • 数据库 AI 助手测评:Chat2DB、SQLFlow 等工具如何提升开发效率?
  • 手搓传染病模型(SEIAR)
  • python3GUI--视频监控管理平台 By:PyQt5(详细讲解)
  • 多商户商城系统开发全策略:从技术架构到流量增长
  • python如何word转pdf
  • Node.js心得笔记
  • 前端八股 6
  • Redis ⑧-RESP | 渐进式遍历 | 数据库管理
  • 移动光猫 UNG853H 获取超级管理员账号密码
  • 2025东三省C题深圳杯C题数学建模挑战赛数模思路代码文章教学: 分布式能源接入配电网的风险分析
  • 支持selenium的chrome driver更新到136.0.7103.49
  • 2025年一加7pro刷twpr / magisk / kali nethunter教程+资源下载+避坑指南
  • ZYNQ 纯PL端逻辑资源程序固化流程
  • AM剪辑软件汉化版:简单易用,开启视频创作之旅
  • 5G技术如何提升智能家居体验:让家更聪明,生活更智能
  • Kubernetes(k8s)的API Server 组件原理与结合生产实战教程
  • 上位机知识篇---ARM 汇编语言与寄存器深度讨论
  • 【工具】Windows批量文件复制教程:用BAT脚本自动化文件管理
  • UDP数据包和TCP数据包的区别;网络编程套接字;不同协议的回显服务器
  • Android短信监控技术实现:合法合规的远程采集方案
  • 计网_PPP协议
  • CMake中的“包管理“模块FetchContent
  • Android Kotlin 项目完整集成 Bugly 异常监控指南
  • react学习笔记4——React UI组件库与redux
  • 《数据结构初阶》【顺序表/链表 精选15道OJ练习】
  • Python 与 MongoDB 深度融合:全流程数据库操作指南
  • 二、OrcaSlicer用户预设
  • 数据结构学习篇——哈希
  • 第六章 进阶07 莹姐做产品