当前位置: 首页 > article >正文

力扣-动态规划-198 打家劫舍

思路

  1. dp数组定义:任意偷0-i家,偷盗的最大价值为dp[i]
  2. 递推公式:dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
    1. 不考虑i-1 + 当前值
    2. 考虑i-1
  3. dp数组初始化:

    dp[0] = nums[0];

     dp[1] = max(nums[0], nums[1]);

  4. 遍历顺序:顺序
  5. 时间复杂度:O(n)     

代码

class Solution {
public:
    int rob(vector<int>& nums) {
        if(nums.size() == 1) return nums[0];
        if(nums.size() == 2) return max(nums[0], nums[1]);
        vector<int> dp(nums.size());
        dp[0] = nums[0];
        dp[1] = max(nums[0], nums[1]);
        for (int i = 2; i < nums.size(); i++) {
            dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);
        }
        return dp[nums.size() - 1];
    }
};


http://www.kler.cn/a/565953.html

相关文章:

  • Kettle 连接 Oracle 数据库全流程指南
  • 【leetcode hot 100 438】找到字符串中所有字母异位词
  • JavaScript 垃圾回收与内存泄漏:原理与应对策略
  • Vue 3 路由管理实战:构建多页面博客导航 - 掌握 Vue Router 实现 SPA 页面跳转
  • 物理内存组织与分配的核心概念
  • tidb集群基于多副本容灾
  • DS32编译优化问题【deepseek的功劳】
  • Spring MVC 的执行流程
  • Python基于Django和人脸识别的在线票务系统设计与实现
  • 【Docker】Linux部署web版Firefox
  • 【AIGC系列】4:Stable Diffusion应用实践和代码分析
  • DeepSeek开源周Day4:三连发!突破 AI 训练瓶颈的立体解决方案,并行计算三剑客DualPipe、EPLB与Profile-data
  • 【Java学习】内部类
  • python-leetcode-第 N 个泰波那契数
  • Debian系统关闭休眠模式
  • 2025年2月28日全球科技信息差:技术革新、市场震荡与认知重构
  • 硬件交互之蓝牙耳机交互操作
  • 【算法方法总结·一】二分法的一些技巧和注意事项
  • Python--内置模块和开发规范(上)
  • 深度学习-11.用于自然语言处理的循环神经网络