当前位置:网站首页>[英雄星球七月集训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
边栏推荐
- Source insight uses shortcut keys
- Ijcai2022 tutorial | dialogue recommendation system
- Ctfshow question making web module web11~web14
- Maxwell 一款简单易上手的实时抓取Mysql数据的软件
- 多线程顺序运行的 4 种方法,面试随便问
- (PMIC) full and half bridge drive csd95481rwj PDF specification
- 酷派主动终止针对小米公司的专利侵权诉讼
- 高举5G和AI两面旗帜:紫光展锐市场峰会火爆申城
- 证券企业基于容器化 PaaS 平台的 DevOps 规划建设 29 个典型问题总结
- 百度搜索为什么只抓取,却不展现页面?
猜你喜欢

Api 接口优化的几个技巧

如何度量软件架构

Confession of a graduate student: why am I addicted to opengauss community?
![Leetcode interview question 02.07. Linked list intersection [knowledge points: Double pointers, stack]](/img/51/ec623bb609f5f57150e7244cf5f9b7.png)
Leetcode interview question 02.07. Linked list intersection [knowledge points: Double pointers, stack]

Explain C language 12 in detail (C language series)

Eureka registers with each other, only showing each other or only showing problems in one

Ctfshow question making web module web11~web14

Uncaught Error:Invalid geoJson format Cannot read property ‘length‘ of undefind

Several skills of API interface optimization

(PMIC)全、半桥驱动器CSD95481RWJ PDF 规格
随机推荐
How does lazada store make up orders efficiently? (detailed technical explanation of evaluation self-supporting number)
不用Swagger,那我用啥?
Automatic filling of spare parts at mobile end
1945. sum of digits after string conversion
Modify the port number of MySQL (is there a problem modifying the port number of MySQL)
Icml2022 | timing self-monitoring video transformer
System integration under microservice architecture
Maxwell 一款简单易上手的实时抓取Mysql数据的软件
Why does Baidu search only crawl, but not show the page?
What is low code? Which platforms are suitable for business personnel? Is it reliable to develop the system?
Uncaught Error:Invalid geoJson format Cannot read property ‘length‘ of undefind
Baidu search is in line with expectations, but it involves the black hat strategy of the external chain. What is the reason?
关于一些小需求,用案例方式记录
ICML2022 | 时序自监督视频transformer
Library borrowing system "suggested collection"
ABB电磁流量计维修信号变送器维修41F/E4技术参数
证券企业基于容器化 PaaS 平台的 DevOps 规划建设 29 个典型问题总结
微服务架构下的系统集成
MySQL
Query Oracle view creation statement and how to insert data into the view [easy to understand]