文章目录

  • 题目描述
  • 代码 & 思路

题目描述

  • 经典题目了,多种解法(不过目前只学了一种,暴力不算)

代码 & 思路

这块基本上算是写给自己看的了。。写得不好,如果想学这种方法最好还是去leetcode题解看。

  • sum = num:因为在上一次循环结尾,就已经取得了i-1结尾的子序的最大和,也就是[0, i-1]的任务已经完成了,继续使用无意义,因为sum < 0的情况下,只会对后面的子序带来负增益
  • 例子1:1,2 ,-4,1, -1,首先取到最大值【1,2】,然后【1,2,-4】时,【1,2,-4】已经无意义,接下来只要对剩下的【1,-1】进行判断即可。
    原因:首先从2开始的【2,-4】肯定不如之前的【1,2,-4】大,因为之所以2之前的【1】能连上2,就是因为【1】这一部分是不小于0的,有正增益。然后之所以不能取【2,-4】再连上后面的【1,-1】,是因为这肯定还不如【1,2,-4】,原理基本上同上(前面的起码还是正增益,舍掉了得比现在还小)。
class Solution {public int maxSubArray(int[] nums) {int ans = nums[0];int sum = 0;// 使用动态规划:时间复杂度O(n)for(int num : nums){// 取值,然后舍掉(因为不如不加)if(sum < 0){sum = num;}// 否则继续下去else{sum += num;}ans = Math.max(ans,sum);}return ans;}
}
  • 时间复杂度O(n),一次遍历结束
  • 空间复杂度O(1)

【LeetCode笔记】53. 最大子序和(Java、动态规划)相关推荐

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

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

  2. LeetCode 题 - 53. 最大子序和 python解法

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

  3. leetcode之53.最大子序和

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

  4. 学渣的刷题之旅 leetcode刷题 53.最大子序和(动态规划,贪心法)

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

  5. 【LeetCode】53.最大子序和

    题目 给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 题解 方法1:暴力法 算法 暴力地用两重循环遍历所有情况 代码 class Solution ...

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

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

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

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

  8. leetcode - 53. 最大子序和

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

  9. 贪心1|455.分发饼干|376. 摆动序列|53. 最大子序和

    贪心1|455.分发饼干|376. 摆动序列|53. 最大子序和 一.455.分发饼干 题目连接:455. 分发饼干 - 力扣(LeetCode) 思路1:用贪心思想,将饼干数组和胃口数组先排序,然后 ...

  10. 力扣贪心算法专题(一)455.分发饼干 376. 摆动序列 53. 最大子序和 122.买卖股票的最佳时机II 1005.K次取反后最大化的数组和 思路及C++实现 贪心算法 动态规划

    文章目录 贪心算法 455.分发饼干 思路 步骤 代码 376. 摆动序列 贪心算法 思路 分析 代码 动态规划 思路 步骤 代码 53. 最大子序和 暴力解法 双层for循环 贪心算法 思路 分析 ...

最新文章

  1. Windows 8.1 Preview(Windows Blue)预览版简体中文官方下载(ISO完整版镜像)
  2. 关闭iptables和SELINUX
  3. 初学者python用哪个版本好-什么是Python?初学者应该学python哪个版本?
  4. python常用的日期时间模块
  5. 3DSlicer4:模块管理(二)场景视图、体数据、体绘制
  6. 数据可视化(BI报表的开发)第三天
  7. 宣布EAXY:在Java中简化XML
  8. android adb源码分析(1)
  9. day4 数组的初始化和练习
  10. 代码对比工具 Top5
  11. 浅谈css中一个元素如何在其父元素居中显示
  12. Odoo12有那些功能?『江苏odoo云整理』
  13. 大华摄像机RTSP断流
  14. 外卖红包返利小程序源码系统
  15. html table最小宽度,table宽度比tbody多1
  16. 微信小程序---修改背景颜色和单个页面的背景颜色
  17. 守护进程——解放本地PC
  18. 人工智能的三个发展阶段
  19. 校园二手物品交易网站毕业设计
  20. 单片机编程软件很简单(23),keil单片机编程软件调试stm32

热门文章

  1. 卡苹果6plus在线_@哈尔滨家长:学生卡初次申办,需要到线下网点办理!
  2. vlc 缓冲大小 设置_用libvlc 播放指定缓冲区中的视频流
  3. python中的画布背景设置_教你用python画图—Turtle详细教程
  4. 征服用计算机弹法,征服WIN7
  5. 北京联合大学计算机学院在哪个校区,北京联合大学各校区联系地址大全
  6. python程序员怎么面试_Python程序员面试,这些问题你必须提前准备!
  7. latex填充段落之间的留白
  8. python from __future__ import division
  9. 安卓系统内 的 安卓虚拟机
  10. 安卓逆向_3 --- 篡改apk名称和图标、修改包名实现应用分身、修改资源去广告、去除re管理器广告