news 2026/10/5 10:43:38

滑动定窗口(十一)1052. 爱生气的书店老板

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
滑动定窗口(十一)1052. 爱生气的书店老板

1052. 爱生气的书店老板

有一个书店老板,他的书店开了n分钟。每分钟都有一些顾客进入这家商店。给定一个长度为n的整数数组customers,其中customers[i]是在第i分钟开始时进入商店的顾客数量,所有这些顾客在第i分钟结束后离开。

在某些分钟内,书店老板会生气。 如果书店老板在第i分钟生气,那么grumpy[i] = 1,否则grumpy[i] = 0。

当书店老板生气时,那一分钟的顾客就会不满意,若老板不生气则顾客是满意的。

书店老板知道一个秘密技巧,能抑制自己的情绪,可以让自己连续minutes分钟不生气,但却只能使用一次。

请你返回这一天营业下来,最多有多少客户能够感到满意。

示例 1:

输入:customers = [1,0,1,2,1,1,7,5], grumpy = [0,1,0,1,0,1,0,1], minutes = 3输出:16解释:书店老板在最后 3 分钟保持冷静。 感到满意的最大客户数量 = 1 + 1 + 1 + 1 + 7 + 5 = 16.

示例 2:

输入:customers = [1], grumpy = [0], minutes = 1输出:1

提示:

  • n == customers.length == grumpy.length
  • 1 <= minutes <= n <= 2 * 104
  • 0 <= customers[i] <= 1000
  • grumpy[i] == 0 or 1
class Solution { public: int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int minutes) { int res = 0, n = customers.size(); for(int i = 0; i < n; i++) if(grumpy[i] == 0) res += customers[i]; // 首先将所有老板不生气时候的顾客数加完 int left = 0, right = 0, temp = 0, max_temp = 0; while(right < n) // 然后利用一个滑动定窗口将一个窗口内老板生气的人 { // 维护一个最大值 if(grumpy[right] == 1) temp += customers[right]; if(right < minutes-1) { right++; continue; } max_temp = max(temp, max_temp); if(grumpy[left] == 1) temp -= customers[left]; left++; right++; } return res+max_temp; } };
class Solution { public: int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int minutes) { int res = 0, n = customers.size(); int left = 0, right = 0, temp = 0, max_temp = 0; while(right < n) // 然后利用一个滑动定窗口将一个窗口内老板生气的人 { // 1、进窗口 if(grumpy[right] == 1) // 遇到老板生气可以维护这个窗口的生气顾客人数 temp += customers[right]; else res += customers[right]; // 老板不生气时直接加入res中即可 if(right < minutes-1) // 定窗口不满直接下一跳 { right++; continue; } max_temp = max(temp, max_temp); // 维护窗口内最大的生气人数 if(grumpy[left] == 1) temp -= customers[left]; left++; right++; } return res + max_temp; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/4 11:39:33

STLink驱动安装与设备管理器识别问题深度剖析

STLink驱动安装与设备管理器识别问题深度剖析&#xff1a;从原理到实战排错 在嵌入式开发的日常中&#xff0c;你是否曾经历过这样的场景&#xff1f;—— 手握一块崭新的STM32开发板&#xff0c;代码编译无误&#xff0c;信心满满地插上STLink调试器&#xff0c;结果打开 设…

作者头像 李华
网站建设 2026/10/4 17:16:09

FCKEditor教学案例WORD公式粘贴上传经验交流

.NET CMS企业官网Word导入功能开发实录 需求分析与技术评估 作为吉林的一名.NET程序员&#xff0c;最近接到了一个CMS企业官网的外包项目&#xff0c;客户提出了一个颇具挑战性的需求&#xff1a;在现有新闻管理系统中实现Word/Excel/PPT/PDF文档导入及Word一键粘贴功能。 核…

作者头像 李华
网站建设 2026/10/3 23:48:40

FreeRTOS中xTaskCreate入门:从创建到删除的完整流程

FreeRTOS任务管理实战&#xff1a;从xTaskCreate创建到vTaskDelete删除的完整闭环你有没有遇到过这样的场景&#xff1f;系统运行几天后&#xff0c;内存越来越紧张&#xff0c;甚至出现死机&#xff1b;或者某个任务“失控”了&#xff0c;一直在疯狂打印日志却无法终止。这些…

作者头像 李华
网站建设 2026/10/4 19:27:42

日志分析也能AI化:anything-llm在运维知识库中的潜力

日志分析也能AI化&#xff1a;anything-llm在运维知识库中的潜力 在现代企业IT环境中&#xff0c;每天产生的日志数据动辄以TB计——从应用服务的错误堆栈、Kubernetes的事件记录&#xff0c;到数据库慢查询和网络延迟告警。面对如此海量且不断增长的信息流&#xff0c;传统的“…

作者头像 李华
网站建设 2026/10/4 18:48:02

构建行业专属大模型应用:anything-llm定制化方案探讨

构建行业专属大模型应用&#xff1a;anything-llm定制化方案探讨 在金融合规审查中&#xff0c;一个分析师需要快速确认某项监管条款的适用范围&#xff1b;在三甲医院里&#xff0c;医生希望从上千页的临床指南中精准提取治疗建议&#xff1b;在软件公司内部&#xff0c;新员工…

作者头像 李华
网站建设 2026/10/4 22:33:30

LangFlow法律咨询机器人开发实战

LangFlow法律咨询机器人开发实战 在智能客服系统日益普及的今天&#xff0c;一个常见的痛点浮出水面&#xff1a;用户问“公司不交社保&#xff0c;我能辞职并要赔偿吗&#xff1f;”——传统问答机器人要么答非所问&#xff0c;要么给出模糊建议。而专业律师又无法724小时在线…

作者头像 李华