首页 > 其他 > 详细

198. House Robber

时间:2020-05-10 23:18:46      阅读:60      评论:0      收藏:0      [点我收藏+]

技术分享图片

 

 

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int rob(vector<int>& nums) {
    if (nums.size() == 0) return 0;
    if (nums.size() == 1) return nums[0];
    if (nums.size() == 2) return max(nums[0], nums[1]);
    int len = nums.size();
    vector<int> nums_tmp1(nums.begin(),nums.begin() + len-1);
    vector<int> nums_tmp2(nums.begin(),nums.begin() + len-2);
    return max(nums[len-1] + rob(nums_tmp2), rob(nums_tmp1));
}

技术分享图片

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int rob(vector<int>& nums) {
    int len = nums.size();
    if (len == 0) return 0;
    if (len == 1)return nums[0];
    int* ans;
    ans = new int[len];
    ans[0] = nums[0];
    ans[1] = max(nums[0], nums[1]);
    for (int i = 2; i < len; i++) {
        ans[i] = max(nums[i] + ans[i - 2], ans[i - 1]);
    }
    return ans[len-1];
    delete []ans;
}

int main() {
    vector<int> a = { 2,7,9,3,1 };
    cout << rob(a) << endl;
    return 0;
}

 

198. House Robber

原文:https://www.cnblogs.com/luo-c/p/12865639.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!