今天,书店老板有一家店打算试营业 customers.length 分钟。每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开。

在某些时候,书店老板会生气。 如果书店老板在第 i 分钟生气,那么 grumpy[i] = 1,否则 grumpy[i] = 0。 当书店老板生气时,那一分钟的顾客就会不满意,不生气则他们是满意的。

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

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

示例:

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

提示:

1 <= X <= customers.length == grumpy.length <= 20000
0 <= customers[i] <= 1000
0 <= grumpy[i] <= 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/grumpy-bookstore-owner
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:
这也是一道滑动窗口类型的题目,首先我们要把能够确定的满意度计算出来,即老板不生气时的所有顾客数量,在每次计算后,都要把统计进去的位置赋值为0,以便后序滑动窗口的计算,接着就是滑动窗口,遍历整个数组,窗口大小为X,计算每个X大小内的数值(注意此时只有生气时的顾客数量,不生气时的已经归零了),最后找到最大数值的窗口即找到最大满意度,注解已经很详尽了,代码如下:

class Solution {public:int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int X) {int count = 0;// 统计不生气时间的顾客for(int i = 0 ; i < customers.size(); i ++) {// 如果不生气if(grumpy[i] == 0) {count += customers[i];// 归零customers[i] = 0;}}// 定义滑动窗口的左右位置以及当前的满意量int left = 0, right = 0, cur = count;while(right < customers.size()) {// 更新当前满意量cur += customers[right];if(right - left + 1 > X) {cur -= customers[left ++];}// 更新最大满意量count = max(count, cur);// 窗口右移right ++;}return count;}
};/*作者:heroding
链接:https://leetcode-cn.com/problems/grumpy-bookstore-owner/solution/ji-bai-shuang-95czui-xiang-xi-si-lu-by-h-9k9j/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。*/

LeetCode 1052 爱生气的书店老板 HERODING的LeetCode之路相关推荐

  1. leetcode 1052. 爱生气的书店老板(滑动窗口)

    今天,书店老板有一家店打算试营业 customers.length 分钟.每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开. 在某些时候,书店老板会生气. ...

  2. LeetCode 1052. 爱生气的书店老板

    截止到目前我已经写了 500多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载 下载链接:https://pan.baidu.com/s/1hj ...

  3. LeetCode Algorithm 1052. 爱生气的书店老板

    1052. 爱生气的书店老板 Ideas 找到一个时间长度为 X 的窗口包含最多原本因为老板生气而不满意的顾客(Sliding Window) ans = 老板不生气时间内的顾客总数(customer ...

  4. 1052. 爱生气的书店老板

    2020-07-06 1.题目描述 今天,书店老板有一家店打算试营业 customers.length 分钟.每分钟都有一些顾客 (customers[i])会进入书店,所有这些顾客都会在那一分钟结束 ...

  5. Feburary——1052.爱生气的书店老板

    class Solution:def maxSatisfied(self, customers: List[int], grumpy: List[int], X: int) -> int:siz ...

  6. leetcode1052. 爱生气的书店老板(滑动窗口)

    今天,书店老板有一家店打算试营业 customers.length 分钟.每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开. 在某些时候,书店老板会生气. ...

  7. LeetCode-1052:爱生气的书店老板

    题目描述: 今天,书店老板有一家店打算试营业 customers.length 分钟.每分钟都有一些顾客(customers[i])会进入书店,所有这些顾客都会在那一分钟结束后离开. 在某些时候,书店 ...

  8. LeetCode 203 移除链表元素 HERODING的LeetCode之路

    给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 . 示例 1: 输入:head = [1,2,6,3,4,5, ...

  9. LeetCode LCP 19 秋叶收藏集 HERODING的LeetCode之路

    小扣出去秋游,途中收集了一些红叶和黄叶,他利用这些叶子初步整理了一份秋叶收藏集 leaves, 字符串 leaves 仅包含小写字符 r 和 y, 其中字符 r 表示一片红叶,字符 y 表示一片黄叶. ...

最新文章

  1. Python中read( )与readlines( )的使用
  2. 使用gogit 设置 http 以及 ssh 协议
  3. SAP CRM WebClient UI cross component跳转的一个具体例子
  4. fastcgi java_FastCGI
  5. kali字典_kali黑客系统wpscan工具扫描wordpress漏洞入侵攻击测试教程
  6. oracle表还原truncate,Oracle数据库执行truncate table操作后如何逆向恢复之前的状态...
  7. 《利用Python进行数据分析·第2版》第13章 Python建模库介绍
  8. 递归解决换零钱问题--代码实现
  9. mysql 数据联合查询语句_MySQL - 数据查询 - 联合查询
  10. java数组循环动态赋值_Java数组
  11. docker swarm 官方文档
  12. 问卷设计中 你经常使用计算机吗,计算机应用基础课程调查问卷
  13. 这样处理,Java中的注释代码也会执行
  14. 判断浏览器必须是IE10以上,低于IE10做出提示
  15. 参加阿里的Java面试经验
  16. 如何测linux传输文件的速度,如何测试linux服务器的上传下载速度
  17. 基于JAVA三坑购物平台演示录像2020计算机毕业设计源码+数据库+lw文档+系统+部署
  18. 印象笔记粘贴HTML,【未解决】Mac中从印象笔记中拷贝图片后去VSCode中用Paste Image无法粘贴图片:There is not a image in clipboard...
  19. 理解嵌入式系统中基本的语音算法
  20. RLS,LMS以及NLMS三种自适应均衡matlab仿真

热门文章

  1. 字符叠加器 视频叠加器模块
  2. Spark论文思想之-基于RDD构建的模型(Shark的来龙去脉)
  3. Eureka(eureka)服务集群搭建搭建
  4. C# WPF 建立无边框(标题栏)的登录窗口的示例
  5. 储存器的区别之——RAM、ROM、FLASH
  6. ohci之usb_submit_urb 一
  7. 黑群晖DSM安装教程及详细配置
  8. cncert/cc DDOS 清洗 流量清洗 IDC AFC AFD ICP
  9. 计算机技能培训心得,计算机技能培训心得感想.doc
  10. [翼灵物联网工作室例会分享]