算法37 动规求数组和

1,确定状态

2,找到转移公式

3,确定初始条件以及边界条件

leetcode53 最大子数组和

https://leetcode-cn.com/problems/maximum-subarray/
两者关系转换条件--后无效性!

求连续项最大和

class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int max=nums[0];
        int last=max;

        for(int i=1;i<nums.size();i++){
            if(max>0){
                max=max+nums[i];
            }else{
                max=nums[i];
            }
            // max=max>0?max+nums[i]:nums[i];
            if(max>last) last=max; 
        }
        
        return last;

    }
   
};

求非相邻项最大和

二次指数-二元关系

leetcode 198打家劫舍

class Solution {
public://[1,2,3,1]
    int rob(vector<int>& nums) {
        int max0=0;
        int max1=nums[0];
        for(int i=1;i<nums.size();i++){
            int t=max1;
            max1=max0+nums[i];
            max0=max(max0,t);
        }
        return max(max0,max1);//max0>max1?max0:max1;
    }
    
};
原文地址:https://www.cnblogs.com/impw/p/15720768.html