《leetcode 198. 打家劫舍(最简单的动态规划问题).docx》由会员分享,可在线阅读,更多相关《leetcode 198. 打家劫舍(最简单的动态规划问题).docx(2页珍藏版)》请在金锄头文库上搜索。
leetcode 198. 打家劫舍(最简单的动态规划问题)题目思路经典的动态规划问题第 i 家:偷,或者不偷 从这两种选择中,选择最大值。 1、如果 不偷,则等于 前 i-1 家最大 2、如果 偷,则等于 前 i-2 家最大 + 第 i 家题解import java.util.Arrays;class Solution / (1) 1 (1) 1 (20) 23 (20) 1 1 (20) 1 public int rob(int nums) int len = nums.length; if (len = 0) return 0; / 长度校验 if (len = 1) return nums0; int dp = new intlen; dp0 = nums0; / 第一家 dp1 = Math.max(nums0, nums1); / 第二家 for (int i = 2; i len; i+) /* 第i家:偷,或者不偷。 * 1、如果不偷,则等于前 i-1 家最大 * 2、如果偷,则等于前 i-2 家最大 + 第 i 家 */ dpi = Math.max(dpi - 1, dpi - 2 + numsi); return dplen - 1; / 从 dp 中获取最大值