您的位置:首页 > 其它

LeetCodeOJ_198_House Robber_e

2015-06-12 11:06 381 查看
答题链接

题目:

You are a professionalrobber planning to rob houses along a street. Each house has a certain amountof money stashed, the only constraint stopping you
from robbing each of them isthat adjacent houses have security system connected and it will automaticallycontact the police if two adjacent houses were broken into on the same night.

Given a list ofnon-negative integers representing the amount of money of each house, determinethe maximum amount of money you can rob tonight without
alerting the police.

分析:

动态规划

代码:

<span style="font-size:14px;">class Solution {
public:

int rob(vector<int>& nums) {
int unrobSize=nums.size();
vector<int> robMoney;
for(int i=0;i<unrobSize;i++)
robMoney.push_back(0);

if(unrobSize==0)
return 0;

if(unrobSize>0)
robMoney[0]=nums.at(0);

if(unrobSize>1)
{
if(nums.at(1)>nums.at(0))
robMoney[1]=nums.at(1);
else
robMoney[1]=nums.at(0);
}

for(int i=2;i<unrobSize;i++)
{

int robHouse=nums.at(i)+robMoney.at(i-2);
int unrobHouse=robMoney.at(i-1);
if(robHouse>unrobHouse)
robMoney[i]=robHouse;
else
robMoney[i]=unrobHouse;
}

return robMoney[unrobSize-1];
}
};
</span>


结果:




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: