首页 > 其他 > 详细

DP练习题(1)小偷问题

时间:2022-05-27 20:36:51      阅读:4      评论:0      收藏:0      [点我收藏+]

问题描述:

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/house-robber

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <vector>
 4 using namespace std;
 5 class Solution {
 6 public:
 7     int rob(vector<int>& nums) 
 8     {
 9         if (nums.size() == 0)
10         {
11             return 0;
12         }
13         if (nums.size() == 1)
14         {
15             return nums[0];
16         }
17         vector<int> dp(nums.size(), 0);
18         dp[0] = nums[0];
19         dp[1] = max(nums[0], nums[1]);
20         for (int i = 2; i < nums.size(); i++)
21         {
22             dp[i] = max(dp[i - 1], dp[i - 2] + nums[i]);
23         }
24         return dp[nums.size() - 1];
25     }
26 };

 

DP练习题(1)小偷问题

原文:https://www.cnblogs.com/shiyuyuran/p/15333918.html

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