leetcode:House Robber

来源:互联网 发布:2017年10月份宏观数据 编辑:程序博客网 时间:2024/06/06 02:21

给出一个数组,求出给数组的不连续相连数字的最大和
基础的dp题目

使用dp[][i]表示数组下标为i的最大不连续和
其中dp[0][i]表示不取下标i的值 dp[1][i]表示取下标i的值
可以得到状态转移方程
dp[0][i] = max(dp[0][i-1], dp[1][i-1])
dp[1][i] =dp[0][i-1] + nums[i]

public class Solution {    public int rob(int[] nums) {        int dp[][] = new int[2][nums.length + 1];        for(int i = 0 ; i < nums.length; ++i){            dp[0][i + 1] = Math.max(dp[0][i], dp[1][i]);            dp[1][i + 1] = dp[0][i] + nums[i];        }        return Math.max(dp[0][nums.length], dp[1][nums.length]);    }}
0 0
原创粉丝点击