力扣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;
    }
}
相关推荐
wadesir6 小时前
Rust中的条件变量详解(使用Condvar的wait方法实现线程同步)
开发语言·算法·rust
yugi9878387 小时前
基于MATLAB实现协同过滤电影推荐系统
算法·matlab
TimberWill7 小时前
哈希-02-最长连续序列
算法·leetcode·排序算法
Morwit7 小时前
【力扣hot100】64. 最小路径和
c++·算法·leetcode
leoufung7 小时前
LeetCode 373. Find K Pairs with Smallest Sums:从暴力到堆优化的完整思路与踩坑
java·算法·leetcode
wifi chicken7 小时前
数组遍历求值,行遍历和列遍历谁更快
c语言·数据结构·算法
qingyun9898 小时前
深度优先遍历:JavaScript递归查找树形数据结构中的节点标签
前端·javascript·数据结构
胡楚昊8 小时前
NSSCTF动调题包通关
开发语言·javascript·算法
Gold_Dino8 小时前
agc011_e 题解
算法
bubiyoushang8889 小时前
基于蚁群算法的直流电机PID参数整定 MATLAB 实现
数据结构·算法·matlab