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

代码随想录算法训练营第三十九天-动态规划-213. 打家劫舍 II

  • 与上一题基本一样,只不过房间形成一个环,就需要在首尾考虑状况多一些
  • 这不是多一些状况的问题,是完全不知道如何选择的问题
  • 这种状况详细分析一下就是要分成三种情况
    • 第一种:不考虑首元素,也不考虑尾元素,只考虑中间的元素,那么中间的元素只需要按照上一题的方式来考虑就可以了,因为剔除了首尾元素,肯定就不会出现连续抢劫店家的情况
    • 第二种:不考虑尾元素,只考虑从到倒数第二家的情况
    • 第三种:不考虑首元素,只考虑从第二家到最后一家的情况
    • 这三种情况当中,第二种与第三种情况是包含了第一种情况的
    • 只考虑第二种与第三种情况下,就会把一个环形问题转化成线性问题(同上一题一样了)
    • 所以这个问题变变成去除尾元素的最值,与去除头元素最值的这两个值谁更大了
class Solution {
private:
    int commonRob(std::vector<int>& values) {
        if (values.size() == 1) {
            return values.at(0);
        }
        int dp[101];
        memset(dp, 0, sizeof(dp));
        dp[0] = values[0];
        dp[1] = std::max(values[0], values[1]);
        for (int i = 2; i < values.size(); ++i) {
            dp[i] = std::max(dp[i - 2] + values[i], dp[i - 1]);
        }
        return dp[values.size() - 1];
    }
public:
    int rob(vector<int>& nums) {
        if (nums.size() == 0) {
            return 0;
        }
        if (nums.size() == 1) {
            return nums.at(0);
        }
        std::vector<int> v1(nums.begin(), nums.end() - 1);
        std::vector<int> v2(nums.begin() + 1, nums.end());
        return std::max(commonRob(v1), commonRob(v2));
    }
};
  • 汇总

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

相关文章:

  • 回顾:Maven的环境搭建
  • (一)QT的简介与环境配置WIN11
  • Cursor 帮你写一个小程序
  • Celery
  • 【项目】基于Qt开发的音乐播放软件
  • 设计模式面试题
  • Unity实现按键设置功能代码
  • 分享|通过Self-Instruct框架将语言模型与自生成指令对齐
  • 为大模型提供webui界面的利器:Open WebUI 完全本地离线部署deepseek r1
  • 【memgpt】letta 课程6:代理RAG和外部内存
  • 130周四复盘(162)研究神作
  • Qt u盘自动升级软件
  • 【愚公系列】《循序渐进Vue.js 3.x前端开发实践》036-案例:实现支持搜索和筛选的用户列表
  • 【某大厂一面】JDK1.8中对HashMap数据结构进行了哪些优化
  • 手撕Diffusion系列 - 第十一期 - lora微调 - 基于Stable Diffusion(代码)
  • Kafka常见问题之 org.apache.kafka.common.errors.RecordTooLargeException
  • 《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》
  • MIMIC IV数据库中mimiciv_hosp的transfers表的careunit分析
  • Java CAS操作
  • Windows平台最新视频号内容下载工具(MP4格式一键解析)
  • Vue.js 路由守卫:前置和后置守卫
  • 安卓(android)读取手机通讯录【Android移动开发基础案例教程(第2版)黑马程序员】
  • 一文大白话讲清楚webpack进阶——9——ModuleFederation实战
  • YOLO11/ultralytics:环境搭建
  • 菜鸟之路Day11-12一一集合进阶(四)
  • Effective Python:(10)