力扣hot100:最大子数组和

题目描述:

思路分析:

运用动态规划的思想,设动态规划列表 dp ,dp[i] 代表以元素 nums[i] 为结尾的连续子数组最大和。从第二个元素开始遍历原数组,如果dp[i-1]是大于0的,就说明当前元素加上之前的最大字数组和会更大,故dp[i]=dp[i-1]+nums[i],如果dp[i-1]是小与0的,说明此时以nums[i]结尾的最大字数组为dp[i]=nums[i],最后遍历dp数组就会的解。

代码:

java 复制代码
class Solution {
    public int maxSubArray(int[] nums) {
        int n=nums.length;
        int dp[] =new int[n];
        dp[0]=nums[0];
        for(int i=1;i<n;i++){
            if(dp[i-1]>0){
                dp[i]=dp[i-1]+nums[i];
            }else{
                dp[i]=nums[i];
            }
        }
        int ans=-10000;
        for(int i=0;i<n;i++){
            ans=Math.max(dp[i],ans);
        }
        return ans;
    }
}
相关推荐
代码无bug抓狂人几秒前
C语言之可分解的正整数(蓝桥杯省B)
c语言·开发语言·算法
量子-Alex几秒前
【大模型技术报告】Seed-Thinking-v1.5深度解读
人工智能·算法
Titan202411 分钟前
搜索二叉树笔记模拟实现
数据结构·c++·笔记·学习
Anastasiozzzz16 分钟前
对抗大文件上传---分片加多重Hash判重
服务器·后端·算法·哈希算法
不染尘.25 分钟前
二叉树相关题目
开发语言·数据结构·c++·算法
Imxyk39 分钟前
力扣:632. 最小区间(贪心)
java·数据结构·算法
Mr_Xuhhh44 分钟前
递归和迭代的区别(C/C++实现)
算法
历程里程碑1 小时前
21:重谈重定义理解一切皆“文件“及缓存区
linux·c语言·开发语言·数据结构·c++·算法·缓存
2501_901147831 小时前
PyTorch DDP官方文档学习笔记(核心干货版)
pytorch·笔记·学习·算法·面试
Daydream.V1 小时前
决策树三中分类标准
算法·决策树·分类