每天手撕一道算法-53. 最大子序和
时间:2022-07-24
本文章向大家介绍每天手撕一道算法-53. 最大子序和,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
53. 最大子序和
给定一个整数数组 nums
,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
解析:
[-2,1,-3,4,-1,2,1,-5,4]
max = -2
tmp = 0
tmp = Math.max(1, 1);
max = 1
tmp = Math.max(1 + -3, -3);
max = 1
遍历数组。
遍历数组。
max记录当前最大子序列和。
更新tmp要么接续连续+新值,要么是新值。
(思想就是动态规划,来了新值,选择继续连续 还是 新值)
然后比较max与tmp值。
如果连续的结果/新值 tmp 结果变大了,就更新max = tmp。没变大,还是原来的max。
class Solution {
public int maxSubArray(int[] nums) {
int serial = 0, max = nums[0]; // 设置连续值为0,最大值默认为首个值。
for(int num : nums) { // 遍历数组
serial = Math.max(num, num + serial); // serial要么选择连续,要么选择新值
max = Math.max(max, serial); // 比较上个最大值与当前连续/新值哪个更大
}
return max;
}
}
- 深入学习Apache Spark和TensorFlow
- 10.16/10.17/10.18 iptables nat表应用
- C++实现int与string之间的相互转换
- 10.15 iptables filter表案例
- 利用crypto++库,实现计算string的md5值
- daemon函数结合脚本实现start, stop, restart
- linux C语言实现文件锁
- linux基础(day 33)
- C 语言字符串分割函数
- 10.14 iptables语法
- 为安全出把力:CVE-2011-1938漏洞分析以及exp编写
- 10.13 netfilter5表5链介绍
- 用JAVA测量DEA页面的社交媒体流行度
- Java数组赋值
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Webpack学习笔记
- 正则表达式学习笔记
- R 可视化 | 华夫饼图
- 绝了!Python定时爬取微博热搜+pyecharts动态图展示
- 实战 | Python爬取B站柯南弹幕+Gephi梳理主线剧情
- 别再问我 Python 怎么识别数字验证码了!
- Python自动化办公 | 同事要我帮忙补写178份Word日报!别闹!
- Excel多区间判断,其实很简单
- 外观模式
- cp命令
- java基本数据类型及相互间的转换(转)
- 【java设计模式系列】1. 工厂方法模式(Factory Method)
- 为什么 Java 中 1000==1000 为 false ?
- 【java设计模式系列】2. 单例模式(Singleton)
- 跨域请求的解决方案