每日一题(力扣198):打家劫舍--dp

考虑到达第n家房屋时,偷偷这家的钱 :1 如果不偷,那么当前最大值是前n-1家房屋中可以偷的最多的钱 2 如果偷 ,那就是这家的钱 +前n-2家房屋可以偷的最多的钱。(从数组的结果值考虑,不然容易绕进去)。

cpp 复制代码
class Solution {
    public:
    int rob(vector<int>& nums) {
        int n=nums.size();
        if(n==1)return nums[0];
        vector<int> dp(n,0);
        dp[0]=nums[0];
        dp[1]=max(nums[0],nums[1]);
        for(int i=2;i<n;i++){
            dp[i]=max(dp[i-2]+nums[i],dp[i-1]);
        }
        int res=max(dp[n-1],dp[n-2]);
        return res;
    }
};
相关推荐
Sam_Deep_Thinking4 小时前
学数据结构到底有什么用
数据结构
kobesdu4 小时前
人形机器人SLAM:技术挑战、算法综述与开源方案
算法·机器人·人形机器人
椰羊~王小美6 小时前
随机数概念及算法
算法
阿Y加油吧6 小时前
算法实战笔记:LeetCode 169 多数元素 & 75 颜色分类
笔记·算法·leetcode
不要秃头的小孩7 小时前
力扣刷题——509. 斐波那契数
python·算法·leetcode·动态规划
We་ct7 小时前
LeetCode 120. 三角形最小路径和:动态规划详解
前端·javascript·算法·leetcode·typescript·动态规划
py有趣8 小时前
力扣热门100题之和为K的子数组
数据结构·算法·leetcode
hipolymers8 小时前
C语言怎么样?难学吗?
c语言·数据结构·学习·算法·编程
CS创新实验室8 小时前
从“跑得动”到“跑得稳”:深度剖析数据结构究竟是理论点缀还是核心战力?
数据结构