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

力扣-贪心/动归dp-持续更新中。。。。。。

一.53 最大子数组和

1.题目

53. 最大子数组和 - 力扣(LeetCode)

 2.视频题解

【看起来复杂,其实是简单动态规划 | LeetCode:53.最大子序和-哔哩哔哩】 https://b23.tv/V8C4um9

DP的思路

五部曲:dp含义,递推公式,初始化,遍历顺序,打印

dp含义:令dp[i]=以第i个下表为结尾的最大子序和

递推公式:dp[i]=max(dp[i-1]+nums[i],nums[i])

要么要链接上前面一坨,要不从num[i]开始从新开始

初始化:dp[0]=nums[0]

遍历顺序:根据递推公式能够看出是从前往后遍历

for i in range(1, len(nums)):

        一边遍历,得到dp[i],一边记录最大的子序,这样可以节省一次遍历,找dp[i]的最大值

3.代码 

class Solution(object):def maxSubArray(self, nums):""":type nums: List[int]:rtype: int"""f = [0] * len(nums)f[0] = nums[0]result=f[0]for i in range(1, len(nums)):f[i] = max(f[i - 1]+nums[i],nums[i])if result<f[i]:result=f[i]return result

还有一种方法使用了前缀和+贪心的方法:53. 最大子数组和 - 力扣(LeetCode)

详细灵神的题解 :

class Solution:def maxSubArray(self, nums: List[int]) -> int:ans = -infmin_pre_sum = pre_sum = 0for x in nums:pre_sum += x  # 当前的前缀和ans = max(ans, pre_sum - min_pre_sum)  # 减去前缀和的最小值min_pre_sum = min(min_pre_sum, pre_sum)  # 维护前缀和的最小值return ans

二.

http://www.lryc.cn/news/597682.html

相关文章:

  • 白盒测试核心覆盖率标准详解文档
  • 【Windows命令手册】Windows中的常用命令,并与 Linux 做比较
  • micro avg、macro avg 和 weighted avg 的区别
  • Oracle19c HINT不生效?
  • 闲庭信步使用图像验证平台加速FPGA的开发:第三十一课——车牌识别的FPGA实现(3)车牌字符分割预处理
  • java设计模式 -【策略模式】
  • 闲庭信步使用图像验证平台加速FPGA的开发:第三十二课——车牌识别的FPGA实现(4)车牌字符的分割定位
  • Android组件化实现方案深度分析
  • 向华为学习——学习华为政务数据安全建设指南【附全文阅读】
  • 【机器学习深度学习】生成式模型的评估与验证
  • QPixmap::scaled参数说明
  • 跟著Qcadoo MES系统学习产品设计001
  • 突发限制下的破局之路:国产之光 Lynx 重构 AI 开发安全壁垒
  • [CH582M入门第十步]蓝牙从机
  • Nestjs框架: 基于Prisma的多租户功能集成和优化
  • 【大模型】Hugging Face常见模型格式详解
  • Linux Debian操作系统、Deepin深度操作系统手动分区方案参考
  • 解决Playwright启动报错:Executable doesn‘t exist at .../chrome-linux/chrome
  • 2025年华为HCIA人工智能认证发展前景如何?客观分析!
  • 459. 重复的子字符串
  • 系统思考:经济反馈的循环
  • [每日随题15] 前缀和 - 拓扑排序 - 树状数组
  • C# 日期与时间 DateTime 结构和TimeSpan 结构
  • 扫地机产品的电池CQC认证遵循哪个标准?
  • socket编程(TCP)
  • 位运算在算法竞赛中的应用(基于C++语言)_位运算优化
  • 代码随想录训练营第二十九天| 77.组合 216.组合总和lll 17.电话号码的字母组合
  • 【LeetCode 热题 100】78. 子集——(解法三)位运算
  • 传统RNN模型笔记:输入数据长度变化的结构解析
  • QT开发---基础介绍及环境搭建