赞
踩
- // 动态规划
- class Solution {
- public int rob(int[] nums) {
- if (nums == null || nums.length == 0) return 0;
- if (nums.length == 1) return nums[0];
-
- int[] dp = new int[nums.length];
- dp[0] = nums[0];
- dp[1] = Math.max(dp[0], nums[1]);
- for (int i = 2; i < nums.length; i++) {
- dp[i] = Math.max(dp[i - 1], dp[i - 2] + nums[i]);
- }
-
- return dp[nums.length - 1];
- }
- }

- class Solution {
- public int rob(int[] nums) {
- if (nums == null || nums.length == 0)
- return 0;
- int len = nums.length;
- if (len == 1)
- return nums[0];
- return Math.max(robAction(nums, 0, len - 1), robAction(nums, 1, len));
- }
-
- int robAction(int[] nums, int start, int end) {
- int x = 0, y = 0, z = 0;
- for (int i = start; i < end; i++) {
- y = z;
- z = Math.max(y, x + nums[i]);
- x = y;
- }
- return z;
- }
- }

- class Solution {
- public int rob(TreeNode root) {
- if (root == null)
- return 0;
- int money = root.val;
- if (root.left != null) {
- money += rob(root.left.left) + rob(root.left.right);
- }
- if (root.right != null) {
- money += rob(root.right.left) + rob(root.right.right);
- }
- return Math.max(money, rob(root.left) + rob(root.right));
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。