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

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.dtcms.com/a/167497.html

相关文章:

  • 在 Modal 平台上高效部署 DeepSeek 模型:从环境准备到实战案例
  • 小白dockerfile
  • 数字智慧方案5972丨智慧农业大数据平台解决方案(65页PPT)(文末有下载方式)
  • 协议(消息)配置
  • ctfshow web入门 web44
  • 如何用AI生成生成个人简历
  • 2025深圳杯、东三省数学建模B题数模AI全网专业性第一
  • MATLAB R2024a安装教程
  • Python 常用内置函数详解(九):type()函数——获取对象类型或获取一个新的类型对象
  • 【Tool】vscode
  • Unity图片导入设置
  • d202551
  • [蓝桥杯 2023 国 Python B] 划分 Java
  • 【Unity】MVP框架的使用例子
  • Http详解
  • AI日报 · 2025年05月01日|DeepSeek 发布新一代定理证明模型 Prover V2
  • 【数据结构】 复杂度
  • 2025五一杯数学建模竞赛选题建议+初步分析
  • OpenGL-ES 学习(9) ---- OpenGL-ES 简介和基本 Pipeline
  • 专题二十一:无线局域网——WLAN
  • Python地图绘制模块cartopy入门
  • Java学习手册:Spring 数据访问
  • PostgreSQL数据类型
  • 面试中系统化地解答系统设计题:通用方法论
  • 向量数据库和关系型数据库的区别,优点,缺点和典型应用场景
  • Linux安全清理删除目录bash脚本
  • 从零到一构建数据科学全流程实战:最新技术与企业级开发
  • Python:Python3 异常和文件
  • Rerank详解
  • 【CF】Day48——Codeforces Round 979 (Div. 2) D