给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

示例:

输入: [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-subarray

解题思路

用两个变量, 一个 sum 保存当前遍历时的和, 一个 result 保存和的最大值
sum 初始化为0, result 初始化为数组首元素
遍历数组, 如果 sum >= 0 则 sum 加上当前遍历元素, 否则 sum 赋值为当前元素

这是因为如果当前和已经是负数, 则后续元素加上该和只能变小, 所以直接将和舍弃

然后每次遍历都要比较 result 和 sum, 并将两者的较大值赋给 result

代码

class Solution {public int maxSubArray(int[] nums) {int result = nums[0];int sum = 0;for (int num : nums) {if (sum >= 0) {sum += num;} else {sum = num;}result = Math.max(result, sum);}return result;}
}

LeetCode-053-最大子序和相关推荐

  1. leetcode 53. 最大子序和 动态规划解法、贪心法以及二分法

    题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子 ...

  2. leetcode - 53. 最大子序和 152. 乘积最大子序列 - 两个算法之间的联系和区别

    这两道算法题的解题思路是差不多的,但是从整体上分析,乘积最大子序列之和是最大子序和的进阶.先来看看两道算法题的简单描述. 53.最大子序和 给定一个整数数组 nums ,找到一个具有最大和的连续子数组 ...

  3. LeetCode 53. 最大子序和(动态规划)

    文章目录 1. 题目描述 2. 解题 2.1 暴力求解 2.2 动态规划 1. 题目描述 题目链接:https://leetcode-cn.com/problems/maximum-subarray/ ...

  4. leetcode - 53. 最大子序和

    53. 最大子序和 - 动态规划 -------------------------------------- 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素), ...

  5. LeetCode 53:最大子序和解题以及优化思路(第一次独立刷题记录)

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 ...

  6. LeetCode 53最大子序和

    力扣 思路: 「连续」是关键字,连续很重要,不是子序列. 动态规划 详细解答请参考力扣 定义dp数组:        dp [i] 表示以nums[i]结尾的最大连续子数组的和 状态转移方程:    ...

  7. 【LeetCode】最大子序和

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 ...

  8. leetcode 53.最大子序和

    难度:简单 频率:159 题目 给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 解题思路 :动态规划(贪心) 解题方法: 1.对数组进行遍历 2.有 ...

  9. LeetCode 53. 最大子序和(Maximum Subarray)

    第一次提交成功 class Solution { public:int maxSubArray(vector<int>& nums) {if (nums.size() == 1) ...

  10. leetcode 53. 最大子序和(C语言)

    题目 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子 ...

最新文章

  1. android 在设备上安装apk包
  2. Autofac 解释第一个例子 《第一篇》
  3. java jvm调优_(第1部分,共3部分):有关性能调优,Java中的JVM,GC,Mechanical Sympathy等的文章和视频的摘要...
  4. 视频会议系统的种类、选择方式、未来发展趋势详解
  5. enlink请输入正确服务器地址,Enlink
  6. 【Vue】—插槽的基本语法
  7. php语句过滤掉html标签_php过滤HTML标签、属性等正则表达式
  8. MatConvnet工具箱文档翻译理解四
  9. Android 测试入门之---Monkey test
  10. 裴礼文数学分析中的典型问题与方法第5章级数练习
  11. 数据结构 实验1——一元多项式的表示与相加
  12. python索引取值_Python 从列表中取值和取索引的方法
  13. KubeEdge+Fabedge集成环境搭建教程
  14. 苹果用户当心 犯罪分子网购海外邮箱专偷苹果ID
  15. 如何在二维码下面显示对应数据
  16. FastReport快速实现条形码,二维码面单打印
  17. 纯Java实现网易邮箱发送邮件
  18. php直接读取导入excel文件内容
  19. ATM自动取款机系统的用例图
  20. Q_OBJECT的作用

热门文章

  1. 项目中的外包团队就得这么管
  2. vs2010 c++连接mysql_vs2010c++链接mysql
  3. 全网通成为主流对华为海思和联发科不利!
  4. 鼠标在计算机上被关闭了怎么处理,笔记本电脑触摸屏的鼠标好像被关闭了,该怎么打开...
  5. IBM R61E 声卡安装心酸历程
  6. 大数据概念解析:分布式计算与服务器集群
  7. 线性回归入门案例 家庭用电量预测
  8. Android 动态壁纸引擎试刀学习(初识安卓引擎)
  9. Windows Update MiniTool 微软系统手动更新补丁设置工具
  10. JS省市地区联动(PCAS)