@LIUHUAN
2019-05-23T15:14:19.000000Z
字数 1473
阅读 950
algorithm
int rob(vector<int>& nums) {int n = nums.size();if(n == 0 )return 0;vector<int> dp(n + 1,0); // dp[n]才是结果dp[1] = nums[0]; // 方便计算for(int i = 2; i <= n; i++ ) {dp[i] = max( dp[i-2] + nums[i-1], dp[i-1]);}return dp[n];}
int rob(vector<int>& nums) {int n = nums.size();if(n <= 0)return 0;if(n <= 1)return nums[0];vector<int> dp(n + 1, 0);dp[1] = nums[0]; //for(int i = 2; i < n; i++ ) {dp[i] = max(dp[i-1], dp[i-2] + nums[i-1]);}int maxv = dp[n-1];dp[1] = 0;// 不选择a[0]for(int i = 2; i <= n; i++ ) {dp[i] = max(dp[i-1],dp[i-2] + nums[i-1]);}maxv = max(maxv ,dp[n]);return maxv;}