LeetCode 198. House Robber(小偷游戏)
2016-05-04 03:22
381 查看
原题网址:https://leetcode.com/problems/house-robber/
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it
will automatically contact the police if two adjacent houses were broken into on the same night.
Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police.
方法一:动态规划。
方法二:在方法一基础上优化内存。
You are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them is that adjacent houses have security system connected and it
will automatically contact the police if two adjacent houses were broken into on the same night.
Given a list of non-negative integers representing the amount of money of each house, determine the maximum amount of money you can rob tonight without alerting the police.
方法一:动态规划。
public class Solution { public int rob(int[] nums) { if (nums == null || nums.length == 0) return 0; if (nums.length == 1) return nums[0]; if (nums.length == 2) return Math.max(nums[0], nums[1]); int[] max = new int[nums.length]; max[0] = nums[0]; max[1] = Math.max(nums[0], nums[1]); for(int i=2; i<nums.length; i++) { max[i] = Math.max(max[i-1], max[i-2] + nums[i]); } return max[nums.length-1]; } }
方法二:在方法一基础上优化内存。
public class Solution { public int rob(int[] nums) { if (nums == null || nums.length == 0) return 0; if (nums.length == 1) return nums[0]; if (nums.length == 2) return Math.max(nums[0], nums[1]); int max = 0, prev2 = nums[0], prev1 = Math.max(nums[0], nums[1]); for(int i=2; i<nums.length; i++) { max = Math.max(prev2 + nums[i], prev1); prev2 = prev1; prev1 = max; } return max; } }
相关文章推荐
- SQLite错误码
- android Camera SurfaceView变形,为什么?
- LeetCode 191. Number of 1 Bits(比特数)
- NYOJ-1070-诡异的电梯[Ⅰ]
- java中的foreach循环
- 门面模式和中介者模式
- LeetCode 190. Reverse Bits(翻转比特)
- NAS
- http笔记
- 关系数据库常用SQL语句语法大全
- linux重定向及nohup不输出的方法
- 冒泡排序的例题讲解
- JDK中的设计模式
- cocos2d-lua+cocos studio之ListView加载Item
- [python]常见数据结构归纳
- 时光隽永,少年何惑
- Provisioning Services 7.8 入门系列教程之四 目标设备安装
- Provisioning Services 7.8 入门系列教程之四 目标设备安装
- Linux下ntpdate时间同步
- Android Studio 进阶详细配置