当前位置: 首页 > news >正文

连续子数组的最大和 (贪心,动态规划) AcWing(JAVA)

输入一个 非空 整型数组,数组里的数可能为正,也可能为负。

数组中一个或连续的多个整数组成一个子数组。

求所有子数组的和的最大值。

要求时间复杂度为 O(n)。

数据范围:

数组长度 [1,1000]。
数组内元素取值范围 [−200,200][−200,200]。

样例:

输入:

[ 1,-2,3,10,-4,7,2,-5]

输出:

18 

解题思路: 本题是求子数组的最大值。

对于数组 [1,......,x,......... ,2]。用 变量s 记录 x 前一个子数组的值若 s < 0 , x + s, 反而比 x 本身小,那么不如从 x 开始重新设立一个新的子数组。对于 s > 0 , s + x 一定要比 x 大,所以不如将 x 纳入 子数组 s 内 (不必担心 x 小于0,使新子数组值变小,因为res变量时刻在更新最大值)。对于 s = 0 的情况完全可以归纳到 s < 0 内。

理论成立代码如下:

class Solution {public int maxSubArray(int[] nums) {int res = -201;int s = 0;for(int x : nums){if(s < 0)s = 0;s = s + x;res = Math.max(res,s);}return res;}
}

 

 

http://www.lryc.cn/news/8385.html

相关文章:

  • 华为OD机试 - 括号检查(Python)| 真题+思路+考点+代码+岗位
  • Redis 数据类型
  • 【SPSS】频数分析和基本描述统计量详细操作教程(附实战案例)
  • TCP/IP网络编程——多种 I/O 函数
  • 静态代理和动态代理的区别以及实现过程
  • Consul SpringCloudK8S
  • anaconda3文件夹被移动之后,如何操作可以复用原有conda环境
  • 【Java】Stack(栈) Queue(单向队列) Deque(双向队列)
  • 自定义spring拦截器
  • 今天正式上线!虹科汽车免拆诊断云展厅:感受精准修车魅力,畅享汽修领先技术
  • 4.数据类型-字符串【Python】
  • 搞量化先搞数(上):A股股票列表免费抓取实战
  • SpringCloud-负载均衡Ribbon
  • Linux入门篇(二)
  • 第四部分:特殊用途的句子——第三章:虚拟
  • Java中如何获取泛型类型信息
  • 【云原生】centos7搭建安装k8s集群 v1.25版本详细教程实战
  • c语言指针
  • 5.33 综合案例2.0 -ESP32拍照上传阿里云OSS
  • java无重复字符的最长子串
  • 测试用例设计工作中的应用
  • leetcode 困难 —— 数字 1 的个数(简单逻辑题)
  • 关于JSON
  • Apifox-接口调用、自动化测试工具
  • Vue一个项目兼容每个省份的个性化需求
  • npm install报错 npm ERR! 的解决办法
  • echarts修改饼图,环形图的圆环宽度,大小
  • 小白系列Vite-Vue3-TypeScript:010-封装svg
  • 卷严重、难度高、激励少,如何适应空投市场新变化
  • 基于Java与JSP的文件上传和下载