挨个偷屋里的钱,相邻的房屋不能被偷,问最大偷得的钱是多少,采用动态规划,
public class Solution {
public int rob(int[] nums) {
int l=nums.length;
if(l==0)
return 0;
int[][] record=new int[2][l];
for(int i=0;i<l;i++)
{
record[0][i]=0;
record[1][i]=0;
}
int tou=0;
int nulltou=0;
for(int i=0;i<l;i++)
{
record[0][i]=nulltou+nums[i];
if(tou>nulltou)
record[1][i]=tou;
else
record[1][i]=nulltou;
tou=record[0][i];
nulltou=record[1][i];
}
if(record[0][l-1]>record[1][l-1])
return record[0][l-1];
else
return record[1][l-1];
}
}
原文地址:http://7061299.blog.51cto.com/7051299/1639711