zoukankan      html  css  js  c++  java
  • LeetCode 198 打家劫舍

    题目描述链接:https://leetcode-cn.com/problems/house-robber/

    解题思路:动态规划。(1)状态确定:dp[i]表示从一开始劫到i户人家的现金,另外要包括此户人家。

                                        (2)边界确定:dp[0]=nums[0],dp[1]=max(nums[0],nums[1])。

                                        (3)状态转移方程:dp[i]=max(dp[j])+nums[i] 其中   0=< j <i-1

    LeetCode C++解题参考代码:

    class Solution {
    public:
        int rob(vector<int>& nums) {
             int len=nums.size();
             if(len==0){
                 return 0;
             }
             if(len==1){
                 return nums[0];
             }
             if(len==2){
                 return max(nums[0],nums[1]);
             }
             int dp[len];
             dp[0]=nums[0];
             dp[1]=nums[1];
             int maxium=dp[0];//,dp[1]);
             for(int i=2;i<len;++i){
    
                   dp[i]=maxium+nums[i];
                   maxium=max(maxium,dp[i-1]);
    
             }
             maxium=max(maxium,dp[len-1]);
             return maxium;
        }
    };
  • 相关阅读:
    [SDOI2016]排列计数
    Broken robot
    环路运输
    naptime
    Accumulation Degree
    选课
    没有上司的舞会
    金字塔
    Polygon
    石子合并
  • 原文地址:https://www.cnblogs.com/zzw-/p/13416359.html
Copyright © 2011-2022 走看看