力扣--LCR 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

代码

class Solution {

public int maxSubArray(int[] nums) {

int dp = nums[0];

int max = nums[0];

// 刷新dp之前,dp相当于是 dp[i-1],刷新之后,Dp就是dp[i]

for(int i = 1; i < nums.length; i++){

dp = Math.max(dp + nums[i], nums[i]);

max = Math.max(max, dp);

}

复制代码
    return max;
}

}

时间复杂度:O(n)

空间复杂度:O(1)

相关推荐
Mr.Ja16 分钟前
【LeetCode热题100】No.11——盛最多水的容器
算法·leetcode·贪心算法·盛水最多的容器
冷徹 .29 分钟前
2024ICPC区域赛香港站
数据结构·c++·算法
浅川.251 小时前
xtuoj string
开发语言·c++·算法
韩非1 小时前
if 语句对程序性能的影响
算法·架构
用户916357440951 小时前
LeetCode热题100——15.三数之和
javascript·算法
ting_zh2 小时前
导数、偏导数与梯度:机器学习数学基础
算法·基础数学
灰灰老师2 小时前
七种排序算法比较与选择[Python ]
java·算法·排序算法
秃头狂魔2 小时前
DAY1 数组一
算法
CM莫问2 小时前
推荐算法之粗排
深度学习·算法·机器学习·数据挖掘·排序算法·推荐算法·粗排
rengang663 小时前
10-支持向量机(SVM):讲解基于最大间隔原则的分类算法
人工智能·算法·机器学习·支持向量机