Skip to content

053最大子数组和

code

javascript
/**
 * @param {number[]} nums
 * @return {number}
 */
var maxSubArray = function(nums) {
    let dp = new Array(nums.length);
    let max;
    for(let i = 0; i < nums.length; i++){
        if(i === 0){
            dp[i] = nums[i];
            max = dp[i];
        } else {
            dp[i] = Math.max(dp[i-1] + nums[i], nums[i]);
        }
        max = Math.max(max, dp[i]);
    }
    return max;  
};

总结

  1. 这个思路有点nb啊,以这一项结尾的,要么是他自己,要么是他带上前面以他结尾的最大的,就能状态转移了
  2. 我不太清楚dp本身还是啥,但是我感觉这个,零钱兑换还有这个,dp有点像潮汐冲刷的感觉,把所有的都过一遍,然后如果max,min就更新,这样的
  3. 这可能得隔三差五来一遍,爬楼梯别写了,写一百遍都一样,零钱兑换也写了挺多了