当前位置: 首页 > 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.jsqmd.com/news/128742/

相关文章:

  • 小红书种草文案构思:年轻用户如何玩转AI文档助手
  • 告别手动编码时代,Open-AutoGLM沉思app如何实现90%自动化开发?
  • Open-AutoGLM 使用全攻略(从入门到高阶优化的完整路径)
  • 【独家】智谱Open-AutoGLM开源细节泄露:仅需1行代码启动Auto-Tuning
  • 新手必读:x64dbg下载前的准备事项
  • 预付费套餐推广策略:结合anything-llm推出AI资源包
  • 【Open-AutoGLM私有化部署终极指南】:从零到上线的完整实践路径
  • 开源中国报道通稿:anything-llm入选年度优秀AI项目
  • 揭秘Open-AutoGLM本地部署难点:5步实现自动化大模型构建
  • 大规模集群中的Elasticsearch内存模型实践与经验总结
  • 【大模型自动化新利器】:Open-AutoGLM 3步部署教程,开发者必藏
  • 顶尖高校联合发布重磅AI智能体记忆系统进化全景综述报告
  • Open-AutoGLM沉思app到底有多强?:5大核心功能颠覆你对智能编码的认知
  • LangFlow Lighthouse CI持续性能测试
  • 如何识别企业的隐藏资产
  • 揭秘Open-AutoGLM核心功能:5大技巧让你高效调用大模型能力
  • 开源SOTA,浙大团队多图精准控制与身份一致性新突破
  • 技术博主联盟招募:通过内容营销扩大品牌影响力
  • STLink驱动安装与设备管理器识别问题深度剖析
  • 谷歌年度重磅揭秘智能体系统的缩放定律与协作陷阱
  • 【Open-AutoGLM沉思app深度解析】:揭秘AI自动编程背后的黑科技与实战应用
  • 航空航天技术文档管理:anything-llm应对高专业度领域的挑战
  • 掘金技术文章合集:精选优质anything-llm实践分享
  • 影视剧本创意激发:编剧如何借助anything-llm进行头脑风暴
  • FCKEditor源码优化WORD公式粘贴上传逻辑流程
  • B站UP主合作方向:科技区内容创作与anything-llm结合点
  • 百度搜索关键词布局:围绕‘AI文档助手‘优化SEO策略
  • Windows系统文件MFPlay.dll丢失或损坏 下载修复方法
  • 超详细版Arduino ESP32离线安装包配置教程
  • 揭秘Open-AutoGLM本地部署难题:5大核心步骤助你高效落地