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;
}
};