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

【算法题】53. 最大子数组和-力扣(LeetCode)

【算法题】53. 最大子数组和-力扣(LeetCode)

1.题目

下方是力扣官方题目的地址

53. 最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组

是数组中的一个连续部分。

示例 1:

输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。

示例 2:

输入:nums = [1]
输出:1

示例 3:

输入:nums = [5,4,-1,7,8]
输出:23

提示:

  • 1 <= nums.length <= 105
  • -104 <= nums[i] <= 104

2.题解

思路

本题很显然可以用动态规划的思路

我们可以将该问题转换为子问题,找到这些子问题的状态转移方程

这个问题就可以轻松地解决了

我们用 dp[i] 代表以第 i个数结尾的连续子数组的最大和

dp[i]的得出有两种情况:

1.单独自成一个序列,从num[i]开始

2.加入dp[i-1]的那一段序列

由这两个情况可以很容易得出状态转移方程:

dp[i]=max(dp[i-1]+nums[i],nums[i])

得出了状态转移方程,这个问题也就迎刃而解了

Python代码

class Solution(object):def maxSubArray(self, nums):""":type nums: List[int]:rtype: int"""dp=[0]*len(nums)        # 初始化dp数组dp[0]=nums[0]for i in range(1,len(nums)):dp[i]=max(dp[i-1]+nums[i],nums[i])      # 利用状态转移方程return max(dp)

3.结语

本人资历尚浅,发博客主要是记录与学习,欢迎大佬们批评指教!大家也可以在评论区多多交流,相互学习,共同成长。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 从HarmonyOS升级到HarmonyOS NEXT-环信SDK数据迁移
  • 如何基于Flink CDC与OceanBase构建实时数仓,实现简化链路,高效排查
  • C#-日志系统
  • 多边形抠图 python
  • 怎么解除BitLocker对磁盘的加密?
  • 一个简单的基于C语言的HTTP代理服务器的案例
  • 人工智能——猴子摘香蕉问题
  • Altium Designer(AD)百度云下载与安装(附安装步骤)
  • 2024年华为杯中国研究生数学建模竞赛E题(高速公路应急车道紧急启用模型)思路
  • 第十二周:机器学习笔记
  • 错题集锦之C语言
  • 六、二分搜索-算法总结
  • 【JavaScript】数据结构之链表(双指针、滑动窗口)
  • PyTorch的特点
  • 编译运行 webAssembly(wasm)
  • 分享一款快速APP功能测试工具
  • Javascripit类型转换比较那点事儿,双等号(==)
  • leetcode388. Longest Absolute File Path
  • mysql 5.6 原生Online DDL解析
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Python爬虫--- 1.3 BS4库的解析器
  • Spring Boot快速入门(一):Hello Spring Boot
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • TypeScript迭代器
  • 给自己的博客网站加上酷炫的初音未来音乐游戏?
  • 将回调地狱按在地上摩擦的Promise
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 利用DataURL技术在网页上显示图片
  • 免费小说阅读小程序
  • 思维导图—你不知道的JavaScript中卷
  • 无服务器化是企业 IT 架构的未来吗?
  • 学习笔记TF060:图像语音结合,看图说话
  • 一些css基础学习笔记
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​字​节​一​面​
  • #AngularJS#$sce.trustAsResourceUrl
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $refs 、$nextTic、动态组件、name的使用
  • (6)添加vue-cookie
  • (Matlab)使用竞争神经网络实现数据聚类
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (二)fiber的基本认识
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (十) 初识 Docker file
  • (译)2019年前端性能优化清单 — 下篇
  • (转) 深度模型优化性能 调参
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)可以带来幸福的一本书
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • . Flume面试题
  • .env.development、.env.production、.env.staging
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?