当前位置:网站首页>[英雄星球七月集训LeetCode解题日报] 第28日 动态规划
[英雄星球七月集训LeetCode解题日报] 第28日 动态规划
2022-07-28 19:48:00 【七水shuliang】
日报
- 今天的题目是最大子段和,也叫最大子数组,经典的kadane算法,在图形领域是常用算法。
- 同时,这也是我的入坑题,领略到算法之美的题。从这题开始,我发现我自己脑子是不够的,有了套路可以秒杀!
- 该问题最初由布朗大学的Ulf Grenander教授于1977年提出,当初他为了展示数字图像中一个简单的最大似然估计模型。不久之后卡内基梅隆大学的Jay Kadane提出了该问题的线性算法。
题目
一、 53. 最大子数组和
链接: 53. 最大子数组和
1. 题目描述

2. 思路分析
- 经典求最大子段和,定义dp[i]为以i为结尾的子段的最大和。
- 显然,如果dp[i-1]非负,就可以累加,dp[i]=a[i]+dp[i-1];
- 否则,放弃前边一段,重新起段,dp[i] = a[i]。
- 最后,我们发现状态转移只和上层有关,因此可以空间优化,实现O(1)的复杂度。
3. 代码实现
class Solution:
# def maxSubArray(self, nums: List[int]) -> int:
# n = len(nums)
# dp = [0] * n
# dp[0] = nums[0]
# for i in range(1,n):
# if dp[i-1] <= 0:
# dp[i] = nums[i]
# else:
# dp[i] = nums[i] + dp[i-1]
# return max(dp)
def maxSubArray(self, nums: List[int]) -> int:
n = len(nums)
dp = nums[0]
ans = dp
for a in nums[1:]:
dp = a if dp <= 0 else dp + a
if ans < dp :
ans = dp
return ans
边栏推荐
- (PMIC)全、半桥驱动器CSD95481RWJ PDF 规格
- Summary of 29 typical problems in Devops planning and construction of securities enterprises based on containerized PAAS platform
- How to measure software architecture
- ctfshow 网络迷踪做题记录(1)
- 牛客打开摄像头几秒后画面消失 | 相机打开画面一闪一闪
- Ijcai2022 tutorial | dialogue recommendation system
- Two excellent software of my love cracking, batch search text, image and video image quality enhancement
- Redis cache avalanche, cache penetration, cache breakdown
- 1945. 字符串转化后的各位数字之和
- 微星宝安工厂失火!官方回应:无人员受伤,产线不受影响!
猜你喜欢

Another installation artifact

4.2 Virtual Member Functions

工业通讯领域的总线、协议、规范、接口、数据采集与控制系统

Ctfshow question making web module web11~web14

Two excellent software of my love cracking, batch search text, image and video image quality enhancement

8、 QoS queue scheduling and message discarding

探讨:想要落地DevOps的话,只考虑好的PaaS容器平台就够了么?

quii cordova-plugin-telerik-imagepicker插件多图上传乱序

What functions does MySQL have? Don't look everywhere. Just look at this.

Analysis of critical path
随机推荐
Using El date picker to report errors in sub components
C#连接MySql数据库详细步骤
What is low code? Which platforms are suitable for business personnel? Is it reliable to develop the system?
30.学习Highcharts 标签旋转柱形图
探讨:想要落地DevOps的话,只考虑好的PaaS容器平台就够了么?
将字符串指针赋值给数组[通俗易懂]
[Zhou Zhou has a prize] cloud native programming challenge "edge container" track invites you to fight!
4.1 various calling methods of member
Uncaught Error:Invalid geoJson format Cannot read property ‘length‘ of undefind
在子组件中使用el-date-picker报错
承载银行关键应用的容器云平台如何选型及建设?
数据库读写分离目的是做什么[通俗易懂]
CVPR 2022 | 网络中批处理归一化估计偏移的深入研究
Ctfshow network lost track record (1)
Link with bracket sequence I (state based multidimensional DP)
针对下一代Chromebook,联发科推出新款芯片组MT8192和MT8195
Capture video by buffering
ABB电磁流量计维修信号变送器维修41F/E4技术参数
Guanghetong & Qualcomm Internet of things technology open day successfully held
Backup and recovery of SQL Server database