请实现 LeetCode 198 打家劫舍问题:给定一个整数数组 nums,每间房屋存放一定金额,相邻房屋不能同时被偷,求能偷到的最大金额。
考察说明
考察动态规划的状态定义与转移方程
回答思路
- 能正确定义 dp[i] 表示前 i 间房屋能偷到的最大金额
- 能推导出转移方程 dp[i] = max(dp[i-1], dp[i-2] + nums[i])
- 能处理边界条件(i=0 和 i=1)
- 能做到 O(n) 时间复杂度和 O(1) 空间复杂度,并说明优化
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。