【力扣每日一题】2023.10.22 做菜顺序
目录
题目:
示例:
分析:
代码:
题目:

示例:

分析:
给我们一个数组表示每个菜的满意度,我们可以指定做哪些菜以及做的顺序,需要我们凑到一个系数的最大值,系数的公式为 菜的满意度 * 轮到做完这盘菜所耗的时间包括等待时间。
我们可以知道,决定这个系数大小的有两个因素,第一个是满意度,另一个其实是做菜的顺序,越是后面做的菜,第二个因素就越大,系数也就越大。
所以我们定下主基调了,满意度越大的菜我们就放到越后面去做,因此我们可以先对满意度进行排序。做菜的顺序我们就定下来了,剩下的问题就是选择做哪些菜。
比较直观的选择就是我们只选择满意度为正数的菜,因为如果选择了负数,那么会导致总体的满意度减少。
但是事实是有时候我们选择满意度为负数的菜反而会让总体的满意度上升,因为如果我们先做了负数的菜,后面再做满意度高的菜,则会使得等待时间变久,这样子满意度系数也会更大。
如果满意度为正,我们就必须选择要做这盘菜,重点在于我们应该如何挑选满意度为负数的菜。
一盘菜能贡献的满意度系数为满意度乘上等待时间,那么是不是就说明在一盘菜之前每多做一盘菜,那么这盘菜的满意度系数就会多加上这盘菜的满意度,转换成数学式子就是 i * ( j + 1 ) = i * j + i 。
我们逆向思考一下,我们一开始说满意度越高的菜我们越后面做,这个是没问题的,但是不利于我们做这道题,我们可以先假设我做满意度最高的菜,如果后面的菜我需要做了,我再反悔一下,我改成后面的菜变成第一个做的菜,而一开始先做的满意度最高的菜我改成第二个做的,这时我只需要将系数总和再加上满意度最高的菜的满意度就可以完成反悔的操作。

也就是说,我之后每做一盘菜,那么我们的系数之和就会加上之前已经做过的菜的满意度之和了,这也就是前缀和。
因此如果遇到了满意度为负数的菜,只要这个菜的满意度加上前缀和大于0了,那么总的满意度系数还是会增加的,我们就可以去做这盘菜。
这样做菜的顺序和做菜的选择我们都搞定了,这道题也就迎刃而解了。
代码:
class Solution {
public:int maxSatisfaction(vector<int>& satisfaction) {int res=0;//前缀和int cache=0;int n=satisfaction.size();//从大到小排序sort(satisfaction.begin(),satisfaction.end(),[](auto &a,auto &b){return a>b;});for(int i=0;i<n;++i){//如果是正数,则肯定是正收益,那么直接加上//如果是负数,如果扣掉前缀和之后仍有盈余,那么也加上if(satisfaction[i]>=0||-1*satisfaction[i]<cache){cache+=satisfaction[i];res+=cache;}}return res;}
};
相关文章:
【力扣每日一题】2023.10.22 做菜顺序
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 给我们一个数组表示每个菜的满意度,我们可以指定做哪些菜以及做的顺序,需要我们凑到一个系数的最大值,…...
MySQL 排名函数 RANK, DENSE_RANK, ROW_NUMBER
文章目录 1 排名函数有哪些?2 SQL 代码实现2.1 RANK2.2 DENSE_RANK2.3 ROW_NUMBER 1 排名函数有哪些? RANK(): 并列跳跃排名, 并列即相同的值, 相同的值保留重复名次, 遇到下一个不同值时, 跳跃到总共的排名DENSE_RANK(): 并列连续排序, 并列即相同的值, 相同的值保留重复名…...
avi视频协议的理解
可以把avi文件理解为由无数个struct结构组成的: 1. struct avifile { RIFF, AVI, struct. movi, struct hdrl} 2. struct hdrl { LIST, hdal, struct avih, struct stream0,struct stream1,struct stream2}; 3. struct stream {LIST …...
教你注册chrome开发者账号,并发布chrome浏览器插件。
本篇文章主要讲解,注册chrome开发者账号,及发布chrome浏览器插件的流程。包含插件的打包和上传。 日期:2023年10月22日 作者:任聪聪 一、前提准备:注册chrome开发者账号 说明:注册需要5美元,一…...
基于孔雀优化的BP神经网络(分类应用) - 附代码
基于孔雀优化的BP神经网络(分类应用) - 附代码 文章目录 基于孔雀优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.孔雀优化BP神经网络3.1 BP神经网络参数设置3.2 孔雀算法应用 4.测试结果:5.M…...
支付宝小程序介入人脸识别(金融级--前端部分)
在这里只做前端部分说明: 详情参考文档:如何通过集成支付宝小程序唤起实人认证服务_实人认证-阿里云帮助中心 操作步骤 调用 API 发起认证。 发起认证服务。 调用 startBizService 接口请求认证。 function startAPVerify(options, callback) {my.call(startBizService, {n…...
设置Oracle环境变量
打开系统变量 1.ORACLE_HOME: 新建一个变量home,再在path中添加:%ORACLE_HOME%\BIN 变量名: ORACLE_HOME 变量值: D:\app\chenzhi\product\11.2.0\dbhome_2(自己的存放地址) 2.NLS_LANG&am…...
大模型之Chat Markup Language
背景 在笔者应用大模型的场景中,对话模型(即大模型-chat系列)通常具有比较重要的地位,我们通常基于与大模型进行对话来获取我们希望理解的知识。然而大模型对话是依据何种数据格式来进行训练的,他们的数据为什么这么来进行组织,本…...
分布式链路追踪系统Skywalking的部署和应用
一,背景 随着业务的扩张,系统变得越来越复杂,由前端、app、api、微服务、数据库、缓存、消息队列、关系数据库、列式数据库等构成了繁杂的分布式网络。 当出现一个调用失败的问题时,要定位异常在哪个服务,需要进入每一…...
canvas绘制动态视频并且在视频上加上自定义logo
实现的效果:可以在画布上播放动态视频,并且加上自定义的图片logo放在视频的右下角 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthd…...
分类预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入分类预测
分类预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入分类预测 目录 分类预测 | MATLAB实现基于BiGRU-AdaBoost双向门控循环单元结合AdaBoost多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于BiGRU-AdaBoos…...
Kotlin 协程(线程)切换
常用协程切换函数 withContext 是Kotlin协程中的一个常用协程函数,它的作用是切换协程的执行上下文(线程或调度器)。具体来说,withContext 的主要功能如下: 切换执行上下文:withContext 允许你从一个执行上…...
分布式Trace:横跨几十个分布式组件的慢请求要如何排查?
目录 前言 一、问题的出现? 二、一体化架构中的慢请求排查如何做 三、分布式 Trace原理 四、如何来做分布式 Trace 前言 在分布式服务架构下,一个 Web 请求从网关流入,有可能会调用多个服务对请求进行处理,拿到最终结果。这个…...
【计算机毕设选题推荐】口腔助手小程序SpringBoot+Vue+小程序
前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 基于SpringBoot的口腔助手小程序 技术栈 SpringBootVue小程序MySQLMaven 文章目录 一、口腔…...
【C/C++笔试练习】初始化列表、构造函数、析构函数、两种排序方法、求最小公倍数
文章目录 C/C笔试练习1. 初始化列表(1)只能在列表初始化的变量 2.构造函数(2)函数体赋值(3)构造函数的概念(4)构造函数调用次数(5)构造函数调用次数ÿ…...
分享 | 对 电商API 平台的再思考
API 是推动现代企业数字化转型的基础。它不但连接了内部应用程序、合作伙伴和客户,同时也快速持续地向市场提供了各种新产品、版本和功能。 但当下还是以集中式的 API 交付为主。一个企业的对外 API 交付过程通常都是冗余而繁琐的,对企业内部的敏捷性、速…...
C语言--程序环境和预处理
前言 本章就是c语言的最后一个板块了,学完这章节,我们将知道写出的代码如何变成可执行程序的,这是非常重要的一个章节,那让我们一起进入本章的学习吧。 本章重点: 程序的翻译环境程序的执行环境详解:C语言程…...
深度学习笔记_5 经典卷积神经网络LeNet-5 解决MNIST数据集
1、定义LeNet-5模型,包括卷积层和全连接层。 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms# 导入必要的库# 定义 LeNet-5 模型 class LeNet5(nn.Module):def __init__(self):super(LeNet5, self…...
国内智能客服机器人都有哪些?
随着人工智能技术的不断发展,智能客服机器人已经成为了企业客户服务的重要工具。国内的智能客服机器人市场也迎来了飞速发展,越来越多的企业开始采用智能客服机器人来提升客户服务效率和质量。 在这篇文章中,我将详细介绍国内知名的智能客服机…...
Matlab/C++源码实现RGB通道与HSV通道的转换(效果对比Halcon)
HSV通道的含义 HSV通道是指图像处理中的一种颜色模型,它由色调(Hue)、饱和度(Saturation)和明度(Value)三个通道组成。色调表示颜色的种类,饱和度表示颜色的纯度或鲜艳程度…...
如何配置Oracle UTL_FILE目录_CREATE DIRECTORY语法与权限分配
必须由SYS或具CREATE ANY DIRECTORY权限的用户执行CREATE DIRECTORY;目录名是Oracle标识符,OS路径需oracle用户有读写权;UTL_FILE.FOPEN首参须为目录名而非OS路径;须GRANT READ/WRITE给具体用户;PDB中目录需在对应容器…...
从理论到实践:一维与二维水污染扩散模型的在线模拟与代码实现
1. 水污染扩散模型的基础原理 第一次接触水污染扩散模型时,我也被那些专业术语搞得一头雾水。后来在实际项目中反复应用才发现,理解这些原理其实就像理解咖啡在杯子里扩散一样简单。想象一下,当你把一勺糖倒入咖啡中,糖分是如何逐…...
从零到一:三维重建技术全流程解析
从零到一:三维重建技术全流程解析 三维重建技术正在重塑我们与数字世界的交互方式。想象一下,仅凭几张普通照片就能在计算机中还原出物体的三维形态——这项看似科幻的能力,如今已成为医疗影像、工业检测、文化遗产保护等领域的常规操作。不…...
FanControl:如何让Windows电脑风扇既安静又高效?一个开源解决方案的深度指南
FanControl:如何让Windows电脑风扇既安静又高效?一个开源解决方案的深度指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https:…...
Qt网络请求的‘收件箱’:QNetworkReply信号与槽的保姆级实战指南
Qt网络请求的‘收件箱’:QNetworkReply信号与槽的保姆级实战指南 想象一下,你每天打开电子邮箱时,系统会自动分类新邮件:重要通知、广告推广、文件附件...而Qt中的QNetworkReply正是这样一个智能收件箱,它能自动分类网…...
SDR求解后如何‘捞回’有效解?深入对比EVD与高斯随机化两种恢复策略的优劣与MATLAB实现
SDR求解后如何‘捞回’有效解?深入对比EVD与高斯随机化两种恢复策略的优劣与MATLAB实现 在无线通信、信号处理和优化领域,半正定松弛(SDR)技术已成为解决非凸二次约束二次规划(QCQP)问题的利器。然而&…...
2026奇点大会闭门报告首曝:AGI训练芯片能效比突破128TOPS/W,但83%的FPGA工程师尚未适配新指令集
第一章:2026奇点智能技术大会:AGI与硬件设计 2026奇点智能技术大会(https://ml-summit.org) AGI架构对芯片微架构的倒逼演进 本届大会首次披露了基于全栈可微分计算范式的AGI参考模型——Singularity-7B,其训练阶段要求硬件具备动态稀疏张量…...
Spring源码速成笔记,普通Java程序员进阶必备!
大多数Java程序员Spring框架还没有一个清楚的认知。拿Spring来说,现在面试面试官一般会直接问:谈一下你对Spring的理解?不会像以前的面试一样直接给你具象出某一个具体的点,而是给你抛出一个很大的范围,然后根据你回答…...
别再装第三方跑分了!Windows自带winsat命令,5分钟测完电脑真实性能
解锁Windows隐藏技能:用winsat命令5分钟完成专业级硬件体检 每次新电脑到手或是旧机变卡,你是不是也习惯性下载各种第三方跑分软件?鲁大师的分数排行榜、3DMark的酷炫测试场景确实吸引眼球,但这些软件背后暗藏的捆绑安装、隐私收集…...
深入解析LC118:一款专为低压玩具设计的SOP-8直流电机驱动芯
1. LC118芯片:玩具电机的"智能小管家" 第一次拿到LC118这颗SOP-8封装的驱动芯片时,我正为一个迷你机器人项目发愁。当时需要驱动两个3V微型电机,但普通驱动方案要么体积太大,要么发热严重。直到发现这个指甲盖大小的芯…...
