【LeetCode】53. 最大子数组和

server/2024/9/23 5:18:20/

刚开始拿到题目,没有什么想法。但是开始分析起来的时候,就立马有思路了。

1. 题目

2. 思路

dp[i] 表示以nums[i]结尾时可以得到的最大子数组和。有了这个假设之后,题目就豁然开朗了。那么dp[i]只有两种情况可以分析:dp[i-1]>0dp[i-1] <0。这两种情况下,分别对应不同的操作:

if dp[i-1] > 0 : # 之前的子数组和大于0,那么可以利用这段和dp[i] = dp[i-1] + nums[i] 
else :# 之前的子数组和小于等于0,不可以累加(因为累加会变得更小)。dp[i] = nums[i] 

3. 代码

class Solution:def maxSubArray(self, nums: List[int]) -> int:dp = [0] * len(nums)res = nums[0]for i in range(len(nums)):if i == 0:dp[i] = nums[i]else:if dp[i-1] > 0:dp[i] = dp[i-1] + nums[i]else:dp[i] = nums[i]res = max(res, dp[i])return res

http://www.ppmy.cn/server/53521.html

相关文章

Linux高并发服务器开发(二)系统调用函数

文章目录 1 系统调用2 errno3 虚拟内存空间4 文件描述符5 常用文件IO函数6 阻塞和非阻塞7 lseek 偏移函数8 文件操作函数之stat函数9 文件描述符复制 dup10 fcnlt函数 修改文件属性11 目录相关操作12 时间相关函数 1 系统调用 根据系统调用&#xff0c;获取驱动信息、CPU的信息…

【nginx】nginx怎么让出问题的代理服务器优雅地退出

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

React 18

React Redux Router路由 TS 安装插件 React Developer、Redux DevTools、极简插件&#xff1b; babel classnames库 dayjs 1 React 组件化开发方式、性能优秀&#xff08;vnode、fiber&#xff09;、丰富生态、跨平台支持&#xff08;React native支持ios、安卓&#xff0…

label studio数据标注平台的自动化标注使用

&#xff08;作者&#xff1a;陈玓玏&#xff09; 开源项目&#xff0c;欢迎star哦&#xff0c;https://github.com/tencentmusic/cube-studio 做图文音项目过程中&#xff0c;我们通常会需要进行数据标注。label studio是一个比较好上手的标注平台&#xff0c;可以直接搜…

淘客返利平台的API设计与安全

淘客返利平台的API设计与安全 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在构建淘客返利平台时&#xff0c;API设计和安全是两个至关重要的方面。API设计…

最长考拉兹序列

题目&#xff1a; 考虑如下定义在正整数集上的迭代规则&#xff1a; n n/2 (若n为偶数) n 3n1 &#xff08;若n为奇数&#xff09; 从13开始&#xff0c;可以迭代生成如下的序列&#xff1a; 13 40 20 10 5 16 8 4 2 1 可以看出这个序列&#xff08;从13…

RAG | (ACL24规划-检索增强)PlanRAG:一种用于生成大型语言模型作为决策者的规划检索增强生成方法

原文&#xff1a;PlanRAG: A Plan-then-Retrieval Augmented Generation for Generative Large Language Models as Decision Makers 地址&#xff1a;https://arxiv.org/abs/2406.12430 代码&#xff1a;https://github.com/myeon9h/PlanRAG 出版&#xff1a;ACL 24 机构: 韩国…

QT/QML国际化:中英文界面切换显示(cmake方式使用)

目录 前言 实现步骤 1. 准备翻译文件 2. 翻译字符串 3.设置应用程序语言 cmake 构建方式 示例代码 总结 1. 使用 file(GLOB ...) 2. 引入其他资源文件 再次生成翻译文件 5. 手动更新和生成.qm文件 其他资源 前言 在当今全球化的软件开发环境中&#xff0c;应用程…