力扣:53. 最大子数组和

embedded/2024/9/25 16:14:05/

53. 最大子数组和

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

子数组

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

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

进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的 分治法 求解。

1、动态规划

class Solution {public int maxSubArray(int[] nums) {if(nums.length==1)return nums[0];int[] dp = new int[nums.length];dp[0] = nums[0];//初始值为第一个数int max = dp[0];for(int i = 1;i <nums.length;i++){dp[i] = Math.max(nums[i],nums[i]+dp[i-1]);//最大值为当前值,或是当前值加上前一段序列的最大值max = Math.max(max,dp[i]);//找到最大值}return max;}
}

2、贪心算法

class Solution {public int maxSubArray(int[] nums) {if(nums.length==1)return nums[0];//长度为一,直接返回int max = Integer.MIN_VALUE;int sum = 0;for(int i = 0;i < nums.length;i++){sum += nums[i];//记录当前和if(sum<0){//若和为负数,则直接放弃当前和,以下一个数为起点sum = 0;//重置max = Math.max(max,nums[i]);//避免所有值都为负数,记录负数中的最大值continue;}max = Math.max(max,sum);//记录最大}return max;//返回最大}
}


http://www.ppmy.cn/embedded/37864.html

相关文章

js倒计时

js倒计时 根据实际经过的时间动态调整下一次更新的时间&#xff0c;从而减少延迟问题 const countdown (endTime: any, onUpdate: any, onEnd: any) > {const updateInterval 1000; // 更新间隔&#xff08;毫秒&#xff09;let lastUpdateTime new Date().getTime();co…

模糊的图片文字,OCR能否正确识别?

拍照手抖、光线不足等复杂的环境下形成的图片都有可能会造成文字模糊&#xff0c;那这些图片文字对于OCR软件来说&#xff0c;是否能否准确识别呢&#xff1f; 这其中的奥秘&#xff0c;与文字的模糊程度紧密相连。想象一下&#xff0c;如果那些文字对于我们的双眼来说&#x…

《Linux运维总结:ARM64架构CPU基于docker-compose一离线部署rabbitmq 3.10.25容器版镜像模式集群工具》

总结&#xff1a;整理不易&#xff0c;如果对你有帮助&#xff0c;可否点赞关注一下&#xff1f; 更多详细内容请参考&#xff1a;《Linux运维篇&#xff1a;Linux系统运维指南》 一、部署背景 由于业务系统的特殊性&#xff0c;我们需要面向不通的客户安装我们的业务系统&…

国内lims系统排名前十名

LIMS&#xff08;Laboratory Information Management System&#xff09;是实验室信息管理系统的缩写&#xff0c;它是一款专门用于管理实验室数据和流程的软件系统。通过LIMS系统&#xff0c;实验室可以实现实验样品的跟踪、数据记录、质量控制和结果分析等关键任务&#xff0…

响应式编程Spring Reactor探索

一&#xff0c;介绍 响应式编程&#xff08;Reactive Programming&#xff09;&#xff0c;简单来说是一种生产者只负责生成并发出数据/事件&#xff0c;消费者来监听并负责定义如何处理数据/事件的变化传递方式的编程思想。 响应式编程借鉴了Reactor设计模式&#xff0c;我们…

python入门demo实例-个人信息收集页面实现

dd 今天是python入门day2&#xff0c;先看一下本案例demo的样子吧~ 一个简单得html页面&#xff0c;个人信息收集界面。 案例介绍常用得input 元素 文本框&#xff0c;密码&#xff0c;邮箱。文件上传等实现。 资源下载&#xff1a;python案例demo个人信息收集页面实现资源-…

Sarcasm detection论文解析 |使用基于多头注意力的双向 LSTM 进行讽刺检测

论文地址 论文地址&#xff1a;https://ieeexplore.ieee.org/document/8949523 论文首页 笔记框架 使用基于多头注意力的双向 LSTM 进行讽刺检测 &#x1f4c5;出版年份:2020 &#x1f4d6;出版期刊:IEEE Access &#x1f4c8;影响因子:3.9 &#x1f9d1;文章作者:Kumar Avinas…

DORIS参数配置

参数配置 根据参数的生效方式&#xff0c;它们被划分为静态参数和动态参数两类。静态参数在修改后需要重新启动服务才能生效&#xff0c;而动态参数则允许立即生效&#xff0c;无需重新启动服务。 FE动态参数 LOG相关配置 参数 默认值 描述 qe_slow_log_ms 5000 Slow q…