题解 | 打家劫舍(一)
打家劫舍(一)
https://www.nowcoder.com/practice/c5fbf7325fbd4c0ea3d0c3ea6bc6cc79
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # 这个代码是看哔哩哔哩代码随想录的视频学会的,据说是动态规划的题,因为搞嵌入式以前都避开动态规划,至少这道题# # 感觉学习起来也不是这么难。 # # @param nums int整型一维数组 # @return int整型 # class Solution: def rob(self, nums: List[int]) -> int: if not nums: return 0 n = len(nums) if n == 1: return nums[0] dp = [0] * n dp[0] = nums[0] dp[1] = max(nums[0], nums[1]) for i in range(2, n): dp[i] = max(dp[i-1], dp[i-2] + nums[i]) return dp[-1]