LeetCode198.打家劫舍 (动态规划)
本题分析总结:
将大问题划分称为小问题,得到递推方程 dp[i] = max(dp[i-1],dp[i-2]+value[i])
从而思路进行转变,不再去分析 局部如何使结果达到最优,而是从整体上去考虑最优结果
#题解代码
#include <stdio.h>
int main() {
int arr[] = {2,1,2,9},size = 4;
int dp[size],result;
dp[0] = arr[0];
dp[1] = arr[0] > arr[1] ? arr[0]:arr[1];
for(int i = 2;i<size;i++){
dp[i] = dp[i-1] > dp[i-2] + arr[i] ? dp[i-1] : dp[i-2] + arr[i];
}
result = dp[size-1];
printf("%d ",result);
return 0;
}
本文来自博客园,作者:TCcjx,转载请注明原文链接:https://www.cnblogs.com/tccjx/articles/16616127.html