【Leetcode】53. 最大子数组和
题目(链接)
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组是数组中的一个连续部分。
示例 1:
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。
示例 2:
输入:nums = [1]
输出:1
示例 3:
输入:nums = [5,4,-1,7,8]
输出:23
提示:
1 <= nums.length <= 105-104 <= nums[i] <= 104
题解
思路:
- 动态规划
- 判断是否需要加上当前位置,如果
f[i-1] + nums[i] >= nums[i],那么nums[i]的最大子数组就是nums[i - 1]的最大子数组加上nums[i];如果f[i - 1] + nums[i]比nums[i]还小的话,因为需要连续,就没有必要加上前面的数字了,从当前位置新开一个子数组。
code:
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int n = nums.size();
int res = nums[0];
int f[n + 10];
f[0] = nums[0];
for (int i = 1; i < n; i ++){
f[i] = max(nums[i], f[i - 1] + nums[i]);
res = max(res, f[i]);
}
return res;
}
};
【Leetcode】53. 最大子数组和的更多相关文章
- LeetCode系列之 (JavaScript) => 53. 最大子数组和
题目描述: leetcode 题目链接: 53. 最大子数组和 - 力扣(LeetCode) (leetcode-cn.com) 解题思路分析: 题干最终的输出是连续子数组的最大和:1. 贪心算法: ...
- LeetCode 53. 最大子序和(Maximum Subarray)
53. 最大子序和 53. Maximum Subarray 题目描述 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. LeetCode53. M ...
- Java实现 LeetCode 53 最大子序和
53. 最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 ...
- 力扣53. 最大子数组和(dp)
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 子数组 是数组中的一个连续部分. 示例 1: 输入:nums = [-2,1,-3,4,-1 ...
- Leecode 53.最大子数组和(Java 贪心算法、动态规划两种方法)
想法(没看解析之前想不出来) -----------------看了解析和答案 1.贪心算法,若当前元素的之前和<0,则丢弃当前元素之前的数列 设一个maxSum作为子序列最大和,一个sum ...
- Leetcode——53.最大子序和
@author: ZZQ @software: PyCharm @file: leetcode53_最大子序和.py @time: 2018/11/26 12:39 要求:给定一个整数数组 nums ...
- LeetCode算法训练-贪心算法 455.分发饼干 376. 摆动序列 53. 最大子序和
欢迎关注个人公众号:爱喝可可牛奶 LeetCode算法训练-贪心算法 455.分发饼干 376. 摆动序列 53. 最大子序和 前置知识 贪心算法核心是找局部最优解,通过局部最优推导出全局最优 Lee ...
- LeetCode HOT 100:最大子数组和
题目:53. 最大子数组和 题目描述: 给你一个整数数组,在该数组的所有子数组中,找到一个子数组中所有元素相加和最大,返回这个最大的和.子数组就是一个数组中,由一个或几个下标连续的元素,组成的小数组, ...
- LeetCode HOT 100:乘积最大子数组(动态规划)
题目:152. 乘积最大子数组 题目描述: 给你一个整数数组,在该数组的所有子数组中,找到一个子数组中所有元素相乘积最大,返回这个最大的积.子数组就是一个数组中,由一个或几个下标连续的元素,组成的小数 ...
- [LeetCode] 53. Maximum Subarray 最大子数组
Given an integer array nums, find the contiguous subarray (containing at least one number) which has ...
随机推荐
- Java集合篇之深入解析LinkedList
写在开头 作为ArrayList的同门师兄弟,LinkedList的师门地位逊色不少,除了在做算法题的时候我们会用到它之外,在实际的开发工作中我们极少使用它,就连它的创造者都说:"I wro ...
- Moon.Orm版本维护及下载
MoonOrm最新版及代码生成器 (2020-8-29)
- 【OpenGL ES】绘制立方体
1 前言 本文主要介绍使用 OpenGL ES 绘制立方体,读者如果对 OpenGL ES 不太熟悉,请回顾以下内容: 绘制三角形 绘制彩色三角形 绘制正方形 绘制圆形 在绘制立方体的过程中, ...
- 硬件开发笔记(十四):RK3568底板电路LVDS模块、MIPI模块电路分析、LVDS硬件接口、MIPI硬件接口详解
前言 本篇继续分析底板原理图mipi/lvds屏幕电路原理图.硬件接口详解. LVDS与MIPI的区别 液晶屏有RGB TTL.LVDS.MIPI.HDMI接口,这些接口区别于信号的类型( ...
- 【Azure 环境】Azure 流分析服务(Steam Analytics) 报出 OutputDataConversionError 错误引起延迟及超时
问题描述 Azure 流分析服务(Steam Analytics) 报出 OutputDataConversionError 错误引起延迟及超时. 查看详细错误: 问题解答 在错误消息中,有非常明确的 ...
- 【Azure 应用服务】如何从App Service for Linux 的环境中下载Container中非Home目录下的文件呢?
问题描述 在App Service for Linux的环境中,我们能通过SSH进入到Container的环境中,并且可以通过在kudu站点的URL后面添加 /newui 打开一个适用于Linux环境 ...
- Python 潮流周刊第 40 期(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- C语言初学习——易错点合集(长篇)
转义字符 例题一 int main() { char s[] = "012xy\08s34f4w2"; int i, n = 0; for (i = 0; s[i] != 0; i ...
- 手机使用termux部署alist(一起体验alist挂载云盘)
termux安装alist 安装termux 软件Termux:https://f-droid.org/packages/com.termux/ pkg install vim pkg install ...
- (二)Git 学习之基础篇
一.理论基础 1.1 Git 记录的是什么? Git 和其它版本控制系统(如 SVN)的主要差别在于 Git 对待数据的方式. 1.1.1 SVN 记录差异比较 从概念上来说,SVN 以文件变更列表的 ...