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

滑动定窗口(十一)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; } };
http://www.zskr.cn/news/141238.html

相关文章:

  • Open-AutoGLM 使用全攻略(从入门到高阶优化的完整路径)
  • 【大模型自动化新利器】:Open-AutoGLM 3步部署教程,开发者必藏
  • 顶尖高校联合发布重磅AI智能体记忆系统进化全景综述报告
  • 开源SOTA,浙大团队多图精准控制与身份一致性新突破
  • 谷歌年度重磅揭秘智能体系统的缩放定律与协作陷阱
  • 掘金技术文章合集:精选优质anything-llm实践分享
  • 影视剧本创意激发:编剧如何借助anything-llm进行头脑风暴
  • 航空航天技术文档管理:anything-llm应对高专业度领域的挑战
  • Windows系统文件MFPlay.dll丢失或损坏 下载修复方法
  • 日志审计功能启用:满足企业IT监管需求的操作步骤
  • 2025年口碑好的白刚玉喷砂机磨料厂家最新推荐权威榜 - 行业平台推荐
  • FCKEditor源码优化WORD公式粘贴上传逻辑流程
  • 多租户架构可行性讨论:single instance support多个组织?
  • 图解HNSW在Elasticsearch向量检索中的构建全过程
  • 谁懂啊!失业 3 个月投 127 份简历,网安零成本转行,月薪 12K 上岸!
  • FCKEditor教学案例WORD公式粘贴上传经验交流
  • 想和异地玩 Terraria?本地私服 + cpolar公网联机一步到位,小白也能轻松搞定
  • 2025 网安应急响应必备:45 个实战技巧,含工具使用 + 合规流程,覆盖全攻击场景
  • 2025年比较好的连动篮功能五金厂家选购指南与推荐 - 行业平台推荐
  • kafka面试知识点整理
  • 你不可错过的Open-AutoGLM控制台7个隐藏功能,第5个太惊艳
  • 智能信息聚合平台:多源数据整合、实时更新与个性化推送的综合解决方案
  • LangFlow政务智能回复系统建设方案
  • 2025年口碑好的钢丝拉拔皮膜剂/环保皮膜剂厂家推荐及选择指南 - 行业平台推荐
  • LangFlow文本分类任务的图形化实现方案
  • 打造AI手机的终极秘籍:Open-AutoGLM全栈教程一步到位
  • screen+驱动开发入门必看:从零搭建基础框架
  • 官方文档阅读指南:快速掌握anything-llm核心功能模块
  • 还在用传统手机?Open-AutoGLM让你7天构建自主AI设备,抢占未来先机
  • 毕业设计 基于python大数据分析的北上广住房数据分析