LintCode 392 House Robber
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LintCode 392 House Robber相关的知识,希望对你有一定的参考价值。
// Ref: https://segmentfault.com/a/1190000003811581
// Ref: http://www.cnblogs.com/grandyang/p/4383632.html
/*
如果选择了抢劫上一个屋子,那么就不能抢劫当前的屋子,所以最大收益就是抢劫上一个屋子的收益
如果选择抢劫当前屋子,就不能抢劫上一个屋子,所以最大收益是到上一个屋子的上一个屋子为止的最大收益,加上当前屋子里有的钱
*/
1 public static long houseRobber(int[] A) { 2 int len = A.length; 3 if (len <= 1) { 4 return len == 0 ? 0: A[0]; 5 } 6 7 long previous = A[0]; // a is the previous max 8 long current = Math.max(A[0], A[1]); // b is the current max 9 for(int i = 2; i < len; i++){ 10 long tmp = current; 11 // previous + A[i] => pre-pre + current 12 // b/c it cannot rob adjacent houses => need to compare 13 current = Math.max(previous + A[i], current); 14 previous = tmp; 15 } 16 return current; 17 }
以上是关于LintCode 392 House Robber的主要内容,如果未能解决你的问题,请参考以下文章