1. 首页
  2. 软件开发
  3. day-22 最大子数组和

day-22 最大子数组和

  • 发布于 2024-09-26
  • 0 次阅读

参考了答案。。。。。。

思路:动态规划,dp[i]表示以索引i结尾的最大子数组和,那么如果dp[i-1]>0 dp[i]=dp[i]+nums[i] 如果dp[i-1]<0 dp[i]=nums[i] ,最后dp数组中的最大值即为答案

code:

class Solution {

    public int maxSubArray(int[] nums) {

        int dp[]=new int[nums.length];
        dp[0]=nums[0];
        for(int i=1;i<nums.length;i++){

            if(dp[i-1]>0){

                dp[i]=dp[i-1]+nums[i];
            }else{

                dp[i]=nums[i];
            }
        }
        Arrays.sort(dp);
        return dp[dp.length-1];
    }
}

原文链接: https://blog.csdn.net/qq_53568730/article/details/136781177