213. 打家劫舍 II

题目链接 213. 打家劫舍 II
思路 动态规划-打家劫舍-简单变体
题解链接 简洁写法!直接调用 198 题代码!(Python/Java/C++/Go/JS/Rust)
关键点 可以分为两种情况讨论:1. 选第一个位置 2. 不选第一个位置
时间复杂度 O(n)
空间复杂度 O(1)

代码实现:

class Solution:
def simple_rob(self, nums):
f0 = f1 = 0
for x in nums:
f0, f1 = f1, max(f1, f0+x)
return f1
def rob(self, nums: List[int]) -> int:
return max(
nums[0] + self.simple_rob(nums[2:-1]),
self.simple_rob(nums[1:])
)
posted @   WrRan  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示