news 2026/6/20 16:10:23

滑动定窗口(十一)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/6/20 10:02:59

LangFlow软件著作权登记材料生成工具

LangFlow&#xff1a;可视化构建AI工作流与软件著作权材料生成利器 在当今AI应用爆发式增长的背景下&#xff0c;开发者面临的不仅是技术选型的复杂性&#xff0c;更是开发效率、团队协作和知识产权保护之间的多重挑战。尤其是当使用如LangChain这类功能强大但结构复杂的框架时…

作者头像 李华
网站建设 2026/6/15 12:51:22

LangFlow + GPU加速:高效运行大规模语言模型任务

LangFlow GPU加速&#xff1a;高效运行大规模语言模型任务 在构建智能对话系统、自动化文档处理或开发AI助手时&#xff0c;开发者常常面临一个两难问题&#xff1a;如何既快速验证想法&#xff0c;又保证最终系统的响应速度&#xff1f;传统方式下&#xff0c;写代码、调试链…

作者头像 李华
网站建设 2026/6/15 12:51:18

FCKEditor思考讨论WORD公式粘贴跨平台解决方案

企业网站后台管理系统富文本编辑器Word/公众号内容导入功能集成方案 需求分析与技术评估 作为吉林某国企项目负责人&#xff0c;我们近期需要对现有企业网站后台管理系统的文章发布模块进行功能升级&#xff0c;主要需求如下&#xff1a; 核心需求&#xff1a; 在FCKEditor…

作者头像 李华
网站建设 2026/6/15 12:51:17

Windows系统软件缺少mfcm110.dll文件 免费下载修复

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/15 22:57:47

破界之测:软件测试技术的跨领域融合与创新图景

从“质量守卫者”到“系统使能者”的角色演进在传统的软件工程视域中&#xff0c;测试技术长期扮演着产品上线前的“质量守门人”角色&#xff0c;其核心价值在于缺陷发现与风险规避。然而&#xff0c;随着数字化转型的浪潮席卷社会各领域&#xff0c;一套成熟的、自动化的、可…

作者头像 李华
网站建设 2026/6/19 10:01:34

cURL命令大全:开发者调试anything-llm接口必备清单

cURL命令大全&#xff1a;开发者调试Anything-LLM接口必备清单 在构建私有化大语言模型应用的今天&#xff0c;越来越多开发者选择 Anything-LLM 作为本地智能问答系统的核心平台。它集成了RAG引擎、支持多文档上传、跨模型调用&#xff08;如Ollama、OpenAI&#xff09;&#…

作者头像 李华