198 House Robber 打家劫舍
你是一个专业的强盗,计划抢劫沿街的房屋。每间房都藏有一定的现金,阻止你抢劫他们的唯一的制约因素就是相邻的房屋有保安系统连接,如果两间相邻的房屋在同一晚上被闯入,它会自动联系警方。
给定一个代表每个房屋的金额的非负整数列表,确定你可以在没有提醒警方的情况下抢劫的最高金额。
详见:https://leetcode.com/problems/house-robber/description/
Java实现:
class Solution { public int rob(int[] nums) { int n = nums.length; if (n == 0) { return 0; } else if (n == 1) { return nums[0]; } int [] dp = new int[n]; dp[0] = nums[0]; dp[1] = nums[1] > nums[0] ? nums[1] : nums[0]; for (int i = 2; i < n; ++i) { dp[i] = Math.max(nums[i]+dp[i-2],dp[i-1]); } return dp[n-1]; } }
参考:https://www.cnblogs.com/grandyang/p/4383632.html