Java——最大子数组和

news2024/9/29 13:22:38

题目链接

leetcode在线oj题——最大子数组和

题目描述

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

子数组 是数组中的一个连续部分。

题目示例

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

输入:nums = [1]
输出:1

输入:nums = [5,4,-1,7,8]
输出:23

题目提示

  • 1 <= nums.length <= 105
  • -104 <= nums[i] <= 104

解题思路

我们可以采用动态规划的思想来解决这道问题

如果数组中只有一个元素:
显然最大子数组和就是这个元素的大小

如果数组有两个元素:
如果两个元素都是正数,最大子数组和是二者之和,否则就是这两个元素的较大值

如果数组有三个元素:
我们可以把前两个元素的最大子数组和看做一个元素,数组中第三个元素为另一个元素,这样的话就相当于两个元素,我们就可以按照上一种情况得出三个元素的最大子数组和

如果数组有n个元素:
我们可以把前n - 1个元素的最大子数组和看做一个元素,数组中第n个元素为另一个元素,这样的话就相当于两个元素,我们就可以按照数组有两种元素得出三个元素的最大子数组和

因此,我们只需要从头到尾遍历数组,如果前一个元素是正数,就把它加到后一个元素身上,最后再找出数组中的最大值即可
在这里插入图片描述

代码

class Solution {
    public int maxSubArray(int[] nums) {
        for (int i = 1; i < nums.length; i++) {
            if(nums[i - 1] > 0){
                nums[i] += nums[i - 1];
            }
        }
        int max = nums[0];
        for (int i = 0; i < nums.length; i++) {
            if(nums[i] > max){
                max = nums[i];
            }
        }
        return max;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186260.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vulnhub DC-4靶机渗透

环境准备DC-4靶机 ip&#xff1a;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;kali攻击机 ip&#xff1a;192.168.153.128一、信息收集kali攻击机中&#xff0c;使用 arp-scan -l 扫描c段&#xff08;-l为扫描c段&#xff09;确定靶…

自动驾驶——智能配电

一、汽车配电 汽车配电&#xff08;Power Distrubition Unit&#xff0c;PDU&#xff09;分为低压配电与高压配电&#xff0c;即低压PDU与高压PDU。 二、传统控制方式——PCB式电器盒 传统配电盒&#xff08;机电器件&#xff09;&#xff1a; &#xff08;1&#xff09;继…

为什么要做黑盒测试?黑盒测试有什么作用?

对于软件测试的从业者来说&#xff0c;黑盒测试是十分重要的测试方式&#xff0c;它可以弥补白盒测试检查不到的部分。可能刚刚入门的测试小白&#xff0c;对于为什么要做黑盒测试&#xff1f;黑盒测试有什么作用&#xff1f;仍然抱有很大的疑问。下面小编就来从黑盒测试的概念…

QT入门Buttons之QPushButton

目录 一、界面布局介绍 1、布局器中的位置及使用 2、控件的界面属性 3、常用基本属性介绍 3.1控件名称 3.2控件大小属性 3.3按钮上的文字设置 3.4设置按钮的样式 二、属性功能介绍 1、常用方法介绍 2、基本信号介绍 三、Demo展示 一、界面布局介绍 1、布局器中的位…

丰田埃尔法商务租车价格是多少,它的性能到底有多好呢

丰田埃尔法作为MPV之王。埃尔法的高腰线和深色玻璃也使内部更具神秘感&#xff0c;惹眼闪烁的进气格栅&#xff0c;类似盔甲一般的全镀铬饰条构成的霸道前脸和富于设计感的车身曲线&#xff0c;细节处采用36颗闪亮镀铬装饰点缀&#xff0c;有着很高的辨识性。保持了典型的MPV风…

需要代理上网的linux服务器,无法使用NTP同步时间,只需要这一行指令即可。

这将会是一篇让你对时间同步受益匪浅的文章&#xff01;如果你看完之后有收获&#xff0c;希望你能加个关注&#xff0c;如果你看完之后没有收获&#xff0c;希望你能留下你路过的痕迹。 由于工作需要&#xff0c;我们使用了一款神奇的调度框架&#xff0c;叫powerjob&#xff…

【职工管理系统】C++全栈体系(十四)

职工管理系统 第七章 添加职工 功能描述&#xff1a;批量添加职工&#xff0c;并且保存到文件中 一、功能分析 分析&#xff1a; 用户在批量创建时&#xff0c;可能会创建不同种类的职工 如果想将所有不同种类的员工都放入到一个数组中&#xff0c;可以将所有员工的指针维…

组织级过程资产库如何助力CMMI3-5级高效落地?

为了助力CMMI3-5级高效落地&#xff0c;近日CoCode旗下Co-ProjectV3.0智能项目管理平台全面升级&#xff0c;CMMI落地4大工具正式上线&#xff1a;CMMI成熟度自测工具、量化管理工具&#xff08;组织级过程改进工具和量化项目管理工具&#xff09;、组织级过程资产库。 组织级过…

tomcat下载安装步骤(笔记整理)

目录Tomcat下载安装以及配置&#xff08;详细教程&#xff09;tomcat下载安装步骤&#xff08;超详细&#xff09;Apache Tomcat下载、安装、配置图文教程Tomcat下载安装配置详细过程Tomcat下载及配置&#xff08;IDEA&#xff09;Tomcat 下载安装教程Linux系统中Tomcat下载安装…

振弦采集模块配置工具VMTool 扩展功能数据处理

振弦采集模块配置工具VMTool 扩展功能数据处理 数据存储 数据存储功能模块支持自动或手动将实时数据寄存器值存储到数据库&#xff0c; 并支持导出为 Excel文件功能。 &#xff08; 1&#xff09; 手动存储 每点击数据存储面板内的【 手动存储】按钮一次&#xff0c;将当前寄存…

Spring Cloud_Gateway新一代网关

目录一、概述简介1.官网2.是什么3.能干嘛4.微服务架构中网关在哪里二、三大核心概念1.Route(路由)2.Predicate&#xff08;断言&#xff09;3.Filter(过滤)4.总体三、Gateway工作流程1.官网总结2.核心逻辑&#xff1a;路由转发执行过滤器链四、入门配置1.新建Module2.POM3.YML4…

模板征集活动正式上线 | 加入我们,共创可视化内容!

本活动是由EasyV官方发布举办的定向主题模板征集活动&#xff0c;用户报名参加并使用EasyV进行创作后&#xff0c;通过素材广场上传作&#xff0c;经由官方进行作品评估&#xff0c;取得奖次的用户即可获得相应奖励。活动面向EasyV所有产品用户&#xff0c;以作品为维度独立参与…

tomcat下载与安装win11

目录 一、下载Tomcat及解压 1、选择下载版本&#xff08;本文选择tomcat 10版本为例&#xff09; 2、之后选择解压到任意一个盘&#xff0c;我解压到D盘&#xff0c;解压的路径一定要记住&#xff0c;后面系统环境变量配置的时候要用到。 二、配置环境 三、验证是否配置成功…

jvm 堆 栈大小设置

1、Eclise 中设置jvm内存: 改动eclipse的配置文件,对全部project都起作用 改动eclipse根文件夹下的eclipse.ini文件 -vmargs //虚拟机设置 -Xms40m //初始内存 -Xmx256m //最大内存 -Xmn16m //最小内存 -XX:PermSize128M //非堆内存 -XX:MaxPermSize256M 2、Eclise 中设置jvm内…

mybatis-plus02

目录一、乐观锁二、查询构造器三、分页查询四、逻辑删除五、Mybatis的应用一、乐观锁 配置示例&#xff1a; 在数据库表中加入version字段&#xff0c;表示数据版本号 修改实体类&#xff0c;在使用类中加入对应的version字段&#xff0c;并使用是乐观锁 //乐观锁 Version pr…

数据结构 第六章 二叉树与树(二叉树的性质)

玫瑰少年&#xff1a;点击收听 1 基本知识点 1、根结点&#xff1a;在一棵树中&#xff0c;(唯一)一个没有前驱的结点 2、叶子结点&#xff1a;在一棵树中&#xff0c;没有后继的结点 3、结点的度&#xff1a;是指结点后继的数量 4、树的度&#xff1a;是指所有结点度的最大值…

VMware ESXi 6.7 U3 Unlocker OEM BIOS 集成 REALTEK 网卡驱动和 NVMe 驱动 (集成驱动版)

ESXi-6.7.0-20221004001 Build 20497097 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-6-sysin/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org VMware ESXi 6.7.0 Update 3 Build 20497097 Unlocker &…

[Vulnhub] DC-7

下载链接&#xff1a;https://download.vulnhub.com/dc/DC-7.zip git信息泄露Drupal-CMS 拿shellnc反弹shell反弹shell写入root用户的cron定时任务&#xff0c;root执行提权 目录 <1> 信息搜集 (1) nmap扫靶机ip&端口服务 (2) github上DC-7项目信息泄露 <2&g…

洛谷 P1417 烹调方案 01背包题解 动态规划

真的好久没有写题解了 上次写还是在上次呢 先赞后看好习惯&#xff01; 昨天打了一月份的USACO(美国信奥赛) 给我一个感触&#xff08;也算是感想吧&#xff09;&#xff1a; 我是蒟蒻 我是蒟蒻 我是蒟蒻 我是蒟蒻 水内容&#xff08;&#xff09; 言归正传看今天这道题 题…

电脑键盘打字错乱怎么办?按键混乱的5种解决方法

有人问电脑无故乱打字&#xff0c;明明按的正确的键&#xff0c;打出来的却是错误的字母。换个键盘是不是就能解决呢&#xff1f; 不过如果你的手边恰好没有新键盘&#xff0c;又立刻要用电脑&#xff0c;可以先试试下面的5种方法。 重新连接键盘和电脑禁用键盘上的Num Lock运…