
class Solution { public: int rob(vector<int>& nums) { int last,next2Last,ans; if(nums.empty()){ return 0; } if(nums.size()==1){ return nums[0]; } next2Last=nums[0]; last=max(nums[0],nums[1]); ans=last; //int N=nums.size()-2; for(int i=2;i<nums.size();i++){ ans=max(next2Last+nums[i],last); next2Last=last; last=ans; } return ans; } };
dp[i+1] 只能是二者之一
{
- 如果算上当前数,即nums[i+1],ans = dp[i-1] + nums[i+1]
- 如果不算,dp[i+1] = dp[i]
}
分类:
LeetCode
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 电商平台中订单未支付过期如何实现自动关单?
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 为什么构造函数需要尽可能的简单
· 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)
· 大模型 Token 究竟是啥:图解大模型Token
· 如何开发 MCP 服务?保姆级教程!
· 1.net core 工作流WorkFlow流程(介绍)
· 瞧瞧别人家的限流,那叫一个优雅!
· C# 工业视觉开发必刷20道 Halcon 面试题
· 从零散笔记到结构化知识库:我的文档网站建设之路