Leetcode——198. 打家劫舍
阿新 • • 發佈:2018-09-23
strong 公式 desc solution 動態 rip 大數 -s 遞推
題目描述:題目鏈接
這道題目也是一道動態規劃的題目:
分析一道動態規劃的題目可以將解決問題的思路分為下面三個部分:
1:問題的描述。可以定義數組d[ i ] 用於表示第i -1家可以獲得的最大金額。
2:給出遞推公式:d[ i ] = max( d[i-1] , d[i-2] + nums[i] );
3:給出遞推公式的初始值:d[0] = nums[0], d[1] = max( nums[0] , nums[1] );
下面可以根據上面的思路給出本題的解決思路:
class Solution { public int rob(int[] nums) { int len = nums.length;if(len == 0){ return 0; } if(len == 1){ return nums[0]; } //定義數組d[i]為i+1家可以獲得的最大數 int[] d = new int[len]; d[0] = nums[0]; d[1] = Math.max(nums[0],nums[1]); if(len == 2){ return d[1]; }int max = -1; for(int i = 2; i < len ; i++){ d[i] = Math.max(d[i-1],d[i-2]+nums[i]); if(d[i] >= max){ max = d[i]; } } return max; } }
Leetcode——198. 打家劫舍