「动态规划」按摩师

力扣原题链接,点击跳转。

一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列nums,总共有n个预约,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。

我们用动态规划的思想解决这个问题。首先创建dp表,确定状态表示,很自然地想到,可以用dp[i]表示一直收到下标为i的请求后,接受的预约的最长总时长。然而,这么想是不够的,因为对于每个预约,都有可能接受或者不接受。所以要分类讨论:用f[i]表示接受下标为i的请求后,接受的预约的最长总时长;用g[i]表示不接受下标为i的请求后,接受的预约的最长总时长。

接着推导状态转移方程。对于f[i],接受了下标为i的预约,说明没有接受下标为i-1的预约,此时接受的预约的最长总时长应为g[i-1]+nums[i]。对于g[i],不接受下标为i的预约,有可能接受了下标为i-1的预约,也有可能不接受下标为i-1的预约,由于要求最长总时长,所以g[i]=max(f[i-1],g[i-1])。

初始化时,只需把f[0]初始化成nums[0],g[0]初始化成0,再从左往右同时填f表和g表。最后,返回max(f[n-1],g[n-1])。

class Solution
{
public:int massage(vector<int>& nums){int n = nums.size();// 处理边界情况if (n == 0)return 0;// 创建dp表vector<int> f(n);auto g = f;// 初始化f[0] = nums[0];// 填表for (int i = 1; i < n; i++){f[i] = g[i - 1] + nums[i];g[i] = max(f[i - 1], g[i - 1]);}return max(f[n - 1], g[n - 1]);}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/839795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(delphi11最新学习资料) Object Pascal 学习笔记---第12章第3节(类引用)

12.3 类引用 ​ 在了解了与方法相关的几个主题后&#xff0c;我们现在可以转向类引用的主题&#xff0c;并进一步扩展我们动态创建组件的示例。首先要记住的一点是&#xff0c;类引用不是一个类&#xff0c;不是一个对象&#xff0c;也不是一个对象引用&#xff1b;它只是对类…

【Redis】String的介绍与应用详解

大家好&#xff0c;我是白晨&#xff0c;一个不是很能熬夜&#xff0c;但是也想日更的人。如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff0c;关注一下&#x1f440;白晨吧&#xff01;你的支持就是我最大的动力&#xff01;&#x1f4aa;&#x1f4aa;&#x1f4aa…

消息队列RabbitMQ最佳实践总结

消息队列RabbitMQ的最佳实践总结如下&#xff1a; 合理设计队列和交换机&#xff1a; 根据业务需求&#xff0c;选择合适的交换机类型&#xff08;如直连交换机、主题交换机、扇出交换机等&#xff09;&#xff0c;并定义清晰的路由规则。避免创建过多的队列和交换机&#xff…

操作系统总结(2)

目录 2.1 进程的概念、组成、特征 &#xff08;1&#xff09;知识总览 &#xff08;2&#xff09;进程的概念 &#xff08;3&#xff09;进程的组成—PCB &#xff08;4&#xff09;进程的组成---程序段和数据段 &#xff08;5&#xff09;程序是如何运行的呢&#xff1f…

《中国企业报》集团数字产业发展研究院介绍

《中国企业报》集团数字产业发展研究院&#xff08;以下简称“中企数研院”&#xff09;&#xff0c;隶属于《中国企业报》集团管理。“中企数研院”致力于“数字经济产业化发展战略”大背景下&#xff0c;以“县域数字经济”、“企业数字化转型”及“数字人民币”推广等发展方…

串口服务器在工业控制领域的应用:深度解析与前沿实践

在工业控制领域&#xff0c;随着技术的不断发展&#xff0c;传统的串口通信方式已经难以满足现代工业系统对高效、稳定、安全通信的需求。此时&#xff0c;串口服务器作为一种先进的通信技术解决方案&#xff0c;正在逐步改变工业控制领域的通信格局。本文将深度解析串口服务器…

Timeline

SignalTrack信号轨道和自定义带参数的Marker信号和轨道 MySignalReceiver using System; using System.ComponentModel; using UnityEngine.Playables; using UnityEngine.Events;namespace UnityEngine.Timeline { public class BaseSignalReceiver<T, Q> : MonoBeha…

炫酷网页设计:HTML5 + CSS3打造8种心形特效

你以为520过去了&#xff0c;你就逃过一劫了&#xff1f;那不是还有分手呢&#xff0c;那不是还得再找对象呢&#xff0c;那不是还有七夕节呢&#xff0c;那不是还有纪念日呢&#xff0c;那不是还有各种各样的节日呢&#xff0c;所以呀&#xff0c;这8种HTML5 CSS3打造8种心形…

Python100个库分享第23个—wordcloud(词云图)

目录 专栏导读库的介绍库的安装基础使用1&#xff1a;将TXT文本转为词云图基础使用2&#xff1a;使用自定义字体和形状基础使用3&#xff1a;中文词云图停用词(中英文版)-代码是中文版总结 专栏导读 &#x1f338; 欢迎来到Python办公自动化专栏—Python处理办公问题&#xff0…

SAP---成本中心采购跟消耗性采购的区别

1.常规库存采购业务的说明&#xff1a; 1.从业务层面分析&#xff0c;企业的常规库存物料采购是&#xff1a; 采购部门下采购订单后&#xff0c;供应商送货&#xff0c;当货物到厂后&#xff0c;由库管员执行收货操作&#xff0c;先将货物收到仓库中&#xff0c;再由各个需求…

10个企业用的wordpress中文模板

移民wordpress主题 移民代办wordpress主题&#xff0c;适合做海外移民咨询的代理公司搭建wordpress企业官方网站使用。 https://www.jianzhanpress.com/?p5130 模特演出wordpress主题 暗黑风格的wordpress主题模板&#xff0c;适用于模特演出公司或艺人经纪公司搭建wordpre…

YOLOv8原理详解

Yolov8是2023年1月份开源的。与yolov5一样&#xff0c;支持目标检测、分类、分割任务。 Yolov8主要改进之处有以下几个方面&#xff1a; Backbone&#xff1a;依旧采用的CSP的思想&#xff0c;不过将Yolov5中的C3模块替换为C2F模块&#xff0c;进一步降低了参数量&#xff0c…

DGPU上用共享内存

进程间&#xff0c;有时候想共用硬件内存。如下代码&#xff0c;服务端分配了硬件内存&#xff0c;客户端共享逻辑内存得到一些信息&#xff0c;再读取硬件内存。 sharedMemoryCreate是对shm_open的封装。 服务端 #include <cstdio> #include <cuda_runtime_api.h&g…

指针数组与数组指针的理解

typedef struct vexnode {int key;struct arcnode *next; }vexnode, adjlist[MVNUM]; void init(adjlist *list); void init(adjlist *list) {for(size_t i 0; i < MVNUM; i){list[i].key i;list[i].next NULL;} }上述代码编译的时候没有报错&#xff0c;但是运行的时候&…

RabbitMQ 交换机类型

常用交换机 发布订阅&#xff08;Publish/Subscribe&#xff09;交换机 一个生产者给多个队列发送消息&#xff0c;X 代表交换机。 交换机的作用&#xff1a;类似网络路由器&#xff0c;主要提供转发功能&#xff0c;解决怎么把消息转发到不同的队列中&#xff0c;让消费者从不…

第十八篇:探索非关系型数据库:从入门到实践

探索非关系型数据库&#xff1a;从入门到实践 1. 引言 1.1 非关系型数据库的崛起&#xff1a;背景与重要性 在过去的几十年里&#xff0c;关系型数据库&#xff08;RDBMS&#xff09;一直在数据存储和管理领域占据主导地位。其严谨的结构化数据模型以及强大的事务处理能力&am…

Mysql触发器优化大数据表

背景 数据库的订单数量过多&#xff0c;需要分出热表用于快速查询&#xff0c;热表仅保存10天的订单数据。 解决思路 每次数据库订单表触发增删改时&#xff0c;同步操作到trigger_order_mul_info表&#xff0c;然后trigger_order_mul_info会定期删除超过10天的数据。 增删…

家政项目day1 配置说明前端

目录 1.配置1.1 开发环境1.2 配置虚拟机1.3 编写nacos配置中心1.4 配置OSS存储1.5 配置高德地图api 2 设计前端并且进行部署2.1 开发环境2.2 安装类库2.3 修改代码2.4 试运行前端2.4.1 OSS配置验证 1.配置 1.1 开发环境 由于个人资金问题&#xff0c;可能担负不起8h8g的服务器…

llama3入门训练和部署

教程一 https://www.youtube.com/watch?voxTVzGwKeoU https://www.youtube.com/watch?voxTVzGwKeoU 下载 alpaca 数据集&#xff08;斯坦福大学的数据集&#xff0c;通过gpt 转换成&#xff09; https://huggingface.co/datasets/shibing624/alpaca-zh将自己的数据集json …

React-JSX基础

什么是JSX 概念&#xff1a;JSX是JavaScript和XML&#xff08;HTML&#xff09;的缩写&#xff0c;表示在JS代码中编写HTML模板结构&#xff0c;它是React中编写UI模板的方式 优势&#xff1a;1.HTML的声明式模板写法 2.JS的可编程能力 JSX的本质 JSX并不是标准的JS语法&…