leetcode1052. 爱生气的书店老板(java)

news2025/2/24 11:34:35

爱生气的书店老板

  • 爱生气的书店老板
    • 题目描述
    • 滑动窗口
    • 代码演示
  • 往期经典算法

爱生气的书店老板

难度 - 中等
原题链接 - 爱生气的书店老板

题目描述

有一个书店老板,他的书店开了 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 * 1e4
0 <= customers[i] <= 1000
grumpy[i] == 0 or 1

滑动窗口

先把不生气的时候,求出来,再去计算连续不生气的时间内,找出最大值,就是滑动窗口最大值解题思路。
由于「技巧」只会将情绪将「生气」变为「不生气」,不生气仍然是不生气。
具体流程:
1.我们可以先将原本就满意的客户加入答案,同时将对应的 customers[i] 变为 0。
2.之后的问题转化为:在 customers 中找到连续一段长度为 minutes 的子数组,使得其总和最大。这部分就是我们应用技巧所得到的客户。
在这里插入图片描述

代码演示

class Solution {
    /**
     * 爱生气的书店老板
     * @param customers
     * @param grumpy
     * @param minutes
     * @return
     */
    public int maxSatisfied(int[] customers, int[] grumpy, int minutes) {
        int n = customers.length;
        int ans = 0;
        /**
         * 先计算出不生气时的顾客总量
         */
        for (int i = 0; i < n;i++){
            if (grumpy[i] == 0){
                ans += customers[i];
                customers[i] = 0;
            }
        }

        int max = 0,cur = 0;
        /**
         * 滑动窗口求出 minutes 范围内最大顾客量
         */
        for (int i = 0; i < n;i++){
            cur += customers[i];
            if (i >= minutes){
                cur -= customers[i - minutes];
            }
            max = Math.max(max,cur);
        }
        return ans + max;
    }
}

往期经典算法

leetcode - 75. 颜色分类

leetcode 475. 供暖器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/863392.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

校对软件在司法系统中的应用:加强刑事文书审查

校对软件在司法系统中的应用可以加强刑事文书审查&#xff0c;提高文书的准确性和可靠性。 以下是校对软件在刑事文书审查方面的应用&#xff1a; 1.语法和拼写检查&#xff1a;校对软件可以自动检查刑事文书中的语法错误和拼写错误。这包括句子结构、主谓一致、动词形式等方面…

element-plus里,设置Message消息提示框组件显示的位置,垂直居中

element-plus里的 Message 组件&#xff0c;默认展示的位置在最顶部&#xff0c;依次往下叠加&#xff0c;如图所示 想要解决它显示的位置&#xff0c;可以使用组件里的 offset属性&#xff0c;设置 Message 距离窗口顶部的偏移量,想要垂直居中&#xff0c;可以这么设置&#…

猿辅导竞赛老师成为“最强辅助”,在线揭秘数学新生代的成长故事

7月12日&#xff0c;2023年第64届IMO闭幕式在日本千叶幕张国际展览中心举行&#xff0c;中国队以6枚金牌&#xff0c;240分的成绩获得世界第一。本届IMO金牌线为32分&#xff0c;共53人获得金牌&#xff1b;银牌线为25分&#xff0c;共89人获得银牌&#xff1b;铜牌线为18分&am…

资讯速递 | ArkUI-X 预览版已正式开源!

OpenHarmony项目群技术指导委员会&#xff08;以下简称“TSC”&#xff09;-跨平台应用开发框架TSG所孵化项目 —— ArkUI-X&#xff0c;近期已正式开源 &#xff0c;开发者基于一套主代码&#xff0c;就可以将在OpenHarmony上开发的精美、高性能应用同时运行在Android、iOS等其…

【论文阅读】基于深度学习的时序预测——Pyraformer

系列文章链接 论文一&#xff1a;2020 Informer&#xff1a;长时序数据预测 论文二&#xff1a;2021 Autoformer&#xff1a;长序列数据预测 论文三&#xff1a;2022 FEDformer&#xff1a;长序列数据预测 论文四&#xff1a;2022 Non-Stationary Transformers&#xff1a;非平…

Springboot配置多个redis连接

1. 添加Redis依赖 首先&#xff0c;打开您的Spring Boot 项目的 pom.xml 文件并添加以下 Redis 相关依赖&#xff1a;<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></de…

方案展示 | RK3588开发板Android12双摄方案

iTOP-RK3588开发板使用手册更新&#xff0c;后续资料会不断更新&#xff0c;不断完善&#xff0c;帮助用户快速入门&#xff0c;大大提升研发速度。 ​RK3588开发板载4路MIPI CAMERA摄像头接口、MIPI CSI DPHY的4.5Gbps、2.5Gops的MIPI CSI CPHY&#xff0c;四路同时输入&#…

【杂谈】电脑城的消失:时代变迁中的一段峡谷

导语&#xff1a;在过去很长一段时间里&#xff0c;想要购买电子设备都逃不开一个叫“电脑城”的地方&#xff0c;那里鱼龙混杂良莠不齐&#xff0c;是令许多人记忆深刻分外难忘之处。但是随着时代发展电商兴起&#xff0c;采用传统线下销售的电脑城却逐渐衰退甚至面临消失&…

【BASH】回顾与知识点梳理(二十二)

【BASH】回顾与知识点梳理 二十二 二十二. Linux 账号管理22.1 Linux 的账号与群组使用者标识符&#xff1a; UID 与 GID使用者账号/etc/passwd 文件结构/etc/shadow 文件结构 关于群组&#xff1a; 有效与初始群组、groups, newgrp/etc/group 文件结构有效群组(effective grou…

班费管理系统(Mybatis + Swing)学生班级信息java jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 班费管理系统&#xff08;Mybatis Swing) 系统有1权…

Java 正则表达式【匹配与分组基本原理】

简介 我们一般使用正则表达式是用来处理字符串的&#xff0c;不管是实际的开发中还是我们的算法竞赛中&#xff0c;使用正则表达式绝对可以大大提升我们的效率。 正则表达式&#xff08;regular expression&#xff09;其实就是对字符串进行模式匹配的技术。 快速入门 我们这里…

要过软考,务必先搞清楚这3点

前段时间软考成绩出来了&#xff0c;大家都过了没&#xff1f; 我看好多人都说早上的题目稳过&#xff0c;下午的好多都挂了。 软考每年这个通过率&#xff0c;确实是一言难尽。 到底怎么样才能过&#xff0c;自学、培训&#xff0c;各种诀窍&#xff0c;五花八门。 但考不过…

【无标题杭州生物制药公司【阿诺医药】申请纳斯达克IPO上市】

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;杭州生物制药公司阿诺医药&#xff08;Adlai Nortye&#xff09;近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&#xff0c;申请在纳斯达克IPO上市&#xff0c;股票代码为&am…

OLED透明屏,与传统的显示屏相比,有哪些特点和优势?

近年来&#xff0c;随着科技的不断发展&#xff0c;人们对于安全防护的需求也越来越高。 传统的安防设备已经不能满足人们的需求&#xff0c;因此&#xff0c;透明屏作为一种新型的安防展示设备&#xff0c;逐渐受到人们的关注和喜爱。 透明屏是一种将显示屏与玻璃结合的新型…

要求表里某字段值唯一

在开发过程中&#xff0c;要求表里某字段值唯一 一、场景 在单据&#xff0c;要求某字段值不重复 查看数据模型&#xff1a; 查看单据&#xff1a; 二、问题 区域编码&#xff0c;区域名称不重复 三、解决方案 1&#xff09;数据库加索引 2&#xff09;书写保存后存储过…

plt绘制雷达图

1、圆形 import matplotlib.pyplot as plt import numpy as npplt.rcParams[font.sans-serif][SimHei] #显示中文 plt.rcParams[axes.unicode_minus]False #正常显示负号def radar_map(data, label, cls):# 设置雷达图的角度&#xff0c;用于平分切开一个圆面n len…

使用windows搭建WebDAV服务,并内网穿透公网访问【无公网IP】

文章目录 1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透&#xff0c;将WebDav服务暴露在公网3.1 打开Web-UI管理界面3.2 创建隧道3.3 查看在线隧道列表3.4 浏览器访问测试 4. 安装Raidrive客户端4.1 连接WebDav服务器4.2 连接成功4.2 连接成功 1. Linux(centos8…

聚焦阅读和写作两大语文专项,猿辅导推出语文教辅《我们的语文》

近期正在热映的动画电影《长安三万里》火了。有人说&#xff0c;这是一部披着电影外衣的唐诗启蒙片&#xff0c;从中感受到了传统文化的魅力和教育的“延时性”。电影里借大唐诗人之口&#xff0c;通过48首诗词让我们体味到从大唐奔流而来的诗意&#xff0c;带我们回味独属的中…

大模型时代下的我们,破茧重生探索新开发范式!|WAVE SUMMIT 开源论坛

WAVE SUMMIT深度学习开发者峰会2023由深度学习技术及应用国家工程研究中心主办&#xff0c;百度飞桨和文心大模型承办。大会设有1个主论坛&#xff0c;5个平行论坛&#xff0c;本次为大家介绍「开源共建 智领未来」开源论坛。 AGI时代到来&#xff0c;机遇与危机并存 身处时代洪…

有没有推荐的golang的练手项目?

前言 下面是github上的golang项目&#xff0c;适合练手&#xff0c;可以自己选择一些项目去练习&#xff0c;整理不易&#xff0c;希望能多多点赞收藏一下&#xff01;废话少说&#xff0c;我们直接进入正题>>> 先推荐几个教程性质的项目&#xff08;用于新手学习、巩…