-
简单改一下打家劫舍的一的代码就行了
-
#include
#include
using namespace std;
int maxT(int a, int b)
{
if (a > b)
{
return a;
}
return b;
}
int RobberHouse(vector vec)
{
vector dp(vec.size(), 0);
dp[0] = vec[0];
dp[1] = maxT(vec[0], vec[1]);
for (int i = 2; i < vec.size(); i++)
{
dp[i] = maxT(vec[i] + dp[i - 2], dp[i - 1]);
}
return dp.back();
}
int RobberHouseII(vector vec)
{
vector vec1(vec.begin(), vec.end() - 1);
vector vec2(vec.begin() + 1, vec.end());
return maxT(RobberHouse(vec1), RobberHouse(vec2));
}
int main()
{cout << RobberHouse({ 2,7,9,3,1 }) << endl;
cout << RobberHouseII({ 2,3,2 }) << endl;
system(“pause”);
return 0;
}
[LeetCode] House Robber II 打家劫舍之二
最新推荐文章于 2020-05-16 02:42:55 发布
