前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Leetcode|线性排列|198. 打家劫舍

Leetcode|线性排列|198. 打家劫舍

作者头像
SL_World
发布2021-09-18 16:51:49
2400
发布2021-09-18 16:51:49
举报
文章被收录于专栏:X

0 打家劫舍系列

《Leetcode|线性排列|198. 打家劫舍》 《Leetcode|环形排列|213. 打家劫舍 II》 《Leetcode|树形排列|337. 打家劫舍 III》

1 动态规划

【状态】:选择偷或者不偷对应房子的索引

【选择】:①不偷第i家;②偷第i家

dp函数含义】:偷完前i家后所得最大金额为dp[i]

【状态转移】: dp[i] = max(dp[i - 1], dp[i - 2] + nums[i])

代码语言:javascript
复制
class Solution {
public:
    int rob(vector<int>& nums) {
        int size = nums.size();
        if (size == 1) return nums[0];
        // dp数组含义:偷完前i家后所得最大金额为dp[i]
        vector<int> dp(size, 0);
        // 边界初始化
        dp[0] = nums[0];
        dp[1] = max(nums[0], nums[1]);
        for (int i = 2; i < size; i++)
            // dp[i] = max(不偷第i家, 偷第i家)
            dp[i] = max(dp[i - 1], dp[i - 2] + nums[i]);
        return dp[size - 1];
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/03/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0 打家劫舍系列
  • 1 动态规划
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档