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

【刷题笔记】删除并获取最大点数粉刷房子

欢迎来到 破晓的历程的 博客

⛺️不负时光,不负己✈️

题目一

题目链接:删除并获取最大点数
思路:

  • 预处理在这里插入图片描述
  • 状态表示

在这里插入图片描述

  • 状态转移方程在这里插入图片描述
    代码如下
class Solution {
public:int deleteAndEarn(vector<int>& nums) {int N=10001;int arry[N]={0};for(auto x:nums){arry[x]+=x;}//接下来,就是打家劫舍问题vector<int> f(N);vector<int> g(N);f[0]=arry[0];g[0]=0;for(int i=0;i<N;i++){f[i]=g[i-1]+arry[i];g[i]=max(g[i-1],f[i-1]);}return max(f[10000],g[10000]);English}
};

思考:我们是如何将这道题目和打家劫舍问题联系在一起的

这道题目要求必须删除相邻的数据,和打家劫舍问题中的不能偷相邻的两家的东西非常相似。所以我们就可以将本题转化为打家劫舍问题。但是本题的数据不一定是连续的,所以我们需要预处理一步。转化成连续的。

题目二

题目链接:粉刷房子
思路
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码如下

class Solution {
public:int minCost(vector<vector<int>>& costs) {int m=costs.size(); if(m==1) return min(costs[0][1],costs[0][0],costs[0][2]);vector<vector<int>>dp(m+1,vector<int>(3));for(int i=1;i<m+1;i++){dp[i][0]=min(dp[i-1][1],dp[i-1][2])+costs[i-1][0];dp[i][1]=min(dp[i-1][0],dp[i-1][2])+costs[i-1][1];dp[i][2]=min(dp[i-1][0],dp[i-1][1])+costs[i-1][2];}return min(dp[m][0],dp[m][1],dp[m][2]);}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024国赛数学建模A题思路模型代码
  • 计算机网络 第1章 概述
  • C++的四种规范的类型转换
  • 坐牢第三十四天(c++)
  • shell判断、if语句
  • 探索C++编程技巧:计算两个字符串的最长公共子串
  • 内网Exadata使用git的配置过程
  • 一、VSCode安装IDF5.3
  • 数据结构---->内核链表
  • 解决:使用Charles查看本机的ip地址
  • 数学建模常见模型(下)
  • 【HTTP、Web常用协议等等】前端八股文面试题
  • 【 WPF 中常用的Brush类的简要介绍、使用方法和适用场景】
  • 微服务面试题
  • 安卓逆向(之)真机root(红米手机)
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • [NodeJS] 关于Buffer
  • Android框架之Volley
  • es6
  • es的写入过程
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JSONP原理
  • mockjs让前端开发独立于后端
  • OSS Web直传 (文件图片)
  • unity如何实现一个固定宽度的orthagraphic相机
  • vue.js框架原理浅析
  • WePY 在小程序性能调优上做出的探究
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • - 概述 - 《设计模式(极简c++版)》
  • 计算机常识 - 收藏集 - 掘金
  • 今年的LC3大会没了?
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 浏览器缓存机制分析
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 入手阿里云新服务器的部署NODE
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 微信小程序:实现悬浮返回和分享按钮
  • 系统认识JavaScript正则表达式
  • 一个SAP顾问在美国的这些年
  • HanLP分词命名实体提取详解
  • ionic异常记录
  • ​第20课 在Android Native开发中加入新的C++类
  • # include “ “ 和 # include < >两者的区别
  • ### RabbitMQ五种工作模式:
  • (09)Hive——CTE 公共表达式
  • (js)循环条件满足时终止循环
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)计算机毕业设计ssm电影分享网站
  • (九)One-Wire总线-DS18B20
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (实战篇)如何缓存数据
  • (四)事件系统
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • *1 计算机基础和操作系统基础及几大协议