leetcode 打家劫舍198
简单的动态规划问题,注意初始变量的初始化。
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。
示例 1:
输入: [1,2,3,1]
输出: 4
解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。
偷窃到的最高金额 = 1 + 3 = 4 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/house-robber
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
附录源码:
1 #include <vector> 2 #include<iostream> 3 using namespace std; 4 class Solution { 5 public: 6 int Max(int p1, int p2){ return p1>p2? p1 : p2;} 7 int rob(vector<int>& nums) { 8 int p1 = 0; 9 int p2 = 0; 10 int result = 0; 11 if(nums.empty()) return 0; 12 if(nums.size() == 1) return nums[0]; 13 if(nums.size() == 2) 14 { 15 p1 = nums[0]; 16 p2 = nums[1]; 17 result = Max(p1,p2); 18 } 19 p1 = nums[0]; 20 p2 = nums[1]; 21 result = Max(p1,p2); 22 for(int i = 2; i <nums.size(); i++) 23 { 24 result = Max(p1+nums[i], p2); 25 printf("%d result%d \n",i ,result); 26 p1 = p2; 27 p2 =result; 28 } 29 return result; 30 } 31 }; 32 33 int main() 34 { 35 vector<int>v1 ={2,1,1,2}; 36 Solution s; 37 int result =s.rob(v1); 38 return 0; 39 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具