当前位置:网站首页>leetcode动态规划经典例题——53.最大子数组和
leetcode动态规划经典例题——53.最大子数组和
2022-08-04 09:03:00 【你食不食油饼】
题目描述:
思路:最大子数组和,要求我们找出一个具有最大和的连续数组,显而易见就是一道动态规划题,我们先找出dp[i]的规律;
题目要求具有最大和连续数组,重点在于连续,就意味着我们dp[i]的值是不是和dp[i-1](前一个位置的连续最大和)息息相关:
- 当dp[i-1]>=0时,dp[i] = dp[i-1] + nums[i],
- 当dp[i-1]<0时,dp[i] = nums[i]
有了这个思路,我们写代码就很简单了:
public int maxSubArray(int[] nums) {
int[] dp = new int[nums.length];
int max = nums[0];
dp[0] = nums[0];
for(int i = 1;i < nums.length;i++){
dp[i] = dp[i-1] >=0 ? dp[i-1] + nums[i] : nums[i];
max = Math.max(max,dp[i]);
}
return max;
}
此时空间复杂度O(n),但是不知道小伙伴们有没有发现,我们的dp[i]只用了一次,我们却创建了一整个dp数组,是不是很浪费空间,所以我们可以进行一个优化,用一个temp变量来代替dp数组
请看代码:
public int maxSubArray(int[] nums) {
int max = nums[0];
int temp = nums[0];
for (int i = 1; i < nums.length; i++) {
temp = temp > 0 ? nums[i] + temp : nums[i];
max = Math.max(max,temp);
}
return max;
}
优化后空间复杂度O(1),而且还缩短了进入dp数组的匹配值的时间,大大提高效率!
边栏推荐
- Fiddler(一)安装
- Since his 97, I roll but he...
- 2022-08-02 Analyze RK817 output 32k clock PMIC_32KOUT_WIFI to WiFi module clock register devm_clk_hw_register
- 三层交换机/路由器OSPF配置详解【华为eNSP实验】
- Linux Redis cache avalanche, breakdown, penetration
- Quick tips for getting out of a single
- 今日睡眠质量记录71分
- 将jpg图片转换成yuv420(NV12)数据文件
- 技术实现 | 图像检索及其在高德的应用
- Implementation of redis distributed lock
猜你喜欢
如何快速将Zabbix5.0升级至6.0?
VRRP + MSTP configuration, huawei eNSP experiment 】 【
递归思想
线程安全问题
【论文笔记】Delving into the Estimation Shift of Batch Normalization in a Network
binder通信实现
94后字节P7晒出工资单:狠补了这个,真不错...
Wang Shuang's Assembly Language Chapter 4: The First Program
请你谈谈网站是如何进行访问的?【web领域面试题】
2022-08-02 Analyze RK817 output 32k clock PMIC_32KOUT_WIFI to WiFi module clock register devm_clk_hw_register
随机推荐
Unity3D 数据加密
ShuffleNet v2 network structure reproduction (Pytorch version)
ZbxTable 2.0 重磅发布!6大主要优化功能!
redis分布式锁的实现
yuv420sp转jpg
菲沃泰科创板上市:市值123亿 宗坚赵静艳夫妇身价76亿
Interview at 14:00 in the afternoon, I came out at 14:08 with my head down, asking too much...
布局管理器
Grafana9.0发布,Prometheus和Loki查询生成器、全新导航、热图面板等新功能!
2022年制冷与空调设备运行操作特种作业证考试题库及模拟考试
蘑菇书EasyRL学习笔记
并发编程之生产者和消费者问题
用OpenGL绘制winXP版扫雷的笑脸表情
spark算子讲解
MATLAB/Simulink快捷键
有坦荡的远方
DeLighT:深度和轻量化的Transformer
Wang Shuang's Assembly Language Chapter 4: The First Program
华为od项目
2022-08-02 Analyze RK817 output 32k clock PMIC_32KOUT_WIFI to WiFi module clock register devm_clk_hw_register