​力扣解法汇总1124. 表现良好的最长时间段

news2024/12/22 18:11:00

 目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。

我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。

所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格 大于「不劳累的天数」。

请你返回「表现良好时间段」的最大长度。

示例 1:

输入:hours = [9,9,6,0,6,6,9]
输出:3
解释:最长的表现良好时间段是 [9,9,6]。

示例 2:

输入:hours = [6,6,6]
输出:0

提示:

  • 1 <= hours.length <= 104
  • 0 <= hours[i] <= 16

解题思路:

* 解题思路:
* 每个数>8则标记为1,<=8则标记-1,然后求这个值的前缀和pres,
* 如果i>j,并且pres[i]-pres[j]>1,则说明[j,i]这段区间是表现良好的区间。
* 则我们遍历数组,得到每一个pres[i]后,
* 如果pres[i]>0,则说明0到i范围内都是表现良好的区间。
* 如果pres[i]<=0,则寻找j,其中pres[i]-pres[j]=1,如果存在这样的j,则[j,i]是表现良好的区间.
 

代码:

public class Solution1124 {

    public int longestWPI(int[] hours) {
        int[] pres = new int[hours.length];
        int maxLength = 0;
        Map<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < hours.length; i++) {
            int value = hours[i] > 8 ? 1 : -1;
            if (i == 0) {
                pres[i] = value;
            } else {
                pres[i] = pres[i - 1] + value;
            }
            if (pres[i] > 0) {
                maxLength = Math.max(maxLength, i + 1);
                continue;
            }
            map.putIfAbsent(pres[i], i);
            Integer index = map.get(pres[i] - 1);
            if (index != null) {
                maxLength = Math.max(maxLength, i - index);
            }

        }
        return maxLength;
    }
}

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

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

相关文章

Spring Cloud微服务网关Gateway组件

目录 网关简介 什么是Spring Cloud Gateway Spring Cloud Gateway 功能特征 核心概念 工作原理 Spring Cloud Gateway快速开始 环境搭建 集成Nacos 路由断言工厂&#xff08;Route Predicate Factories&#xff09;配置 自定义路由断言工厂 过滤器工厂&#xff08; …

window 配置深度学习环境GPU

CUDA 11.6 CUDNN Anaconda pytorch 参考网址&#xff1a;https://zhuanlan.zhihu.com/p/460806048 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com) 电脑信息 RTX 2060 GPU0 1. CUDA 11.6 1.1 确认信息 C:\Users\thzn>nvidia-smi &#xff08;CUDA Versi…

秒杀项目之消息推送

目录一、创建消费者二、创建订单链路配置2.1 定义RabbitMQ配置类2.2 创建RabbitmqOrderConfig配置类三、如何实现RabbitMQ重复投递机制3.1 开启发送者消息确认模式3.2 消费发送确认3.2.1 创建ConfirmCallBack确认模式3.2.2 创建ReturnCallBack退回模式3.3 创建生产者3.4 创建消…

金三银四必看软件测试面试题,上百家公司面试都是这些套路

自我介绍说一下测试用例嗯&#xff0c;做测试&#xff0c;好多时间是在琢磨分析测试用例怎么去写&#xff0c;这个每个公司规范可能不太一样&#xff0c;但是大致思想是一致的。都是想要通过测试用例&#xff0c;把每一个分析到位&#xff0c;进行测试。就拿我上家公司来说吧&a…

数据库(2)--加深对统计查询的理解,熟练使用聚合函数

一、内容要求 利用sql建立学生信息数据库&#xff0c;并定义以下基本表&#xff1a; 学生&#xff08;学号&#xff0c;年龄&#xff0c;性别&#xff0c;系号&#xff09; 课程&#xff08;课号&#xff0c;课名&#xff0c;学分&#xff0c;学时&#xff09; 选课&#xff0…

融云入围「2022 云办公平台 TOP50」,进入「中国协同办公产业图谱」

2 月 10 日&#xff0c;中国科学院旗下《互联网周刊》颁布“2022 云办公平台 TOP50”&#xff0c;融云荣登榜单。 2 月 13 日&#xff0c;艾瑞咨询发布《2023 年中国协同办公行业研究报告》&#xff08;下简称《报告》&#xff09;&#xff0c;对协同办公行业的供需动态和迭代方…

黑马】后台管理-项目优化和上线

一。项目优化优化1&#xff0c;加载进度条显示安装一个运行依赖&#xff0c;nprogress然后导包&#xff0c;调用对象展示和隐藏在main中基于拦截器实现展示进度条和隐藏进度条的效果如果触发请求拦截器&#xff0c;证明发起请求&#xff0c;希望展示进度条&#xff0c;如果触发…

消防应急照明和疏散指示系统——集中控制型系统的设计与应用

安科瑞 李亚俊 V:Acrel8757 摘要&#xff1a;伴随着建筑领域的良好发展&#xff0c;建筑工程建设越来越复杂&#xff0c;相应的消防配套设施也越来越先进&#xff0c;火灾发生时&#xff0c;人在燃烧产生的噪音和烟气中会产生恐惧、不安等不良的心理状态&#xff0c;进而影响他…

NLP篇章2:理解Transformer

Transformer编码&#xff0c;解码大的结构的理解 编码部分&#xff0c;每一个的小编码器的输入是前一个小编码器的输出&#xff0c; 而每一个小解码器的输入不光是它的前一个解码器的输出&#xff0c;还包括了整个编码部分的输出。 self-attention 自注意力机制 顾名思义就是…

【数据库】 MySQL备份恢复

目录 MySQL日志管理 一&#xff0c; MySQL日志类型 二&#xff0c;错误日志 三&#xff0c; 通用查询日志 四&#xff0c; 慢查询日志 五&#xff0c;二进制日志 1&#xff0c;开启日志 2&#xff0c;二进制日志的管理 3&#xff0c;日志查看 5&#xff0c;二进制日志还原数据…

MAC OSX安装Python环境 + Visual Studio Code

MAC上开发python怎么能少得了python3环境呢&#xff0c;而安装python3环境的方式也有多种&#xff0c;这里仅选用并记录本人认为比较方便的方式 安装Homebrew Homebrew是macOS 缺失的软件包管理器&#xff0c; 使用它可以在MAC上安装很多没有预装的东西&#xff0c;详细说明可…

上海霄腾自动化装备盛装亮相2023生物发酵展

上海霄腾自动化携液体膏体粉剂颗粒等灌装生产线解决方案亮相2023生物发酵展BIO CHINA2023生物发酵展&#xff0c;作为生物发酵产业一年一度行业盛会&#xff0c;由中国生物发酵产业协会主办&#xff0c;上海信世展览服务有限公司承办&#xff0c;2023第10届国际生物发酵产品与技…

SAS应用入门学习笔记5

input 操作符&#xff1a; 代码说明&#xff1a; 1&#xff09;1 表示第1列字符&#xff1b;7表示第7列字符&#xff1b; 2&#xff09;col1 表示第一列数据&#xff1b;col2 表示第二列数据&#xff1b; 3&#xff09;4.2 表示的是4个字符&#xff0c;2表示小数点后两位&a…

Hazel游戏引擎(005)

本人菜鸟&#xff0c;文中若有代码、术语等错误&#xff0c;欢迎指正 我写的项目地址&#xff1a;https://github.com/liujianjie/GameEngineLightWeight&#xff08;中文的注释适合中国人的你&#xff09; 文章目录前言关键操作代码文件关键代码代码流程代码文件关键代码exter…

5、MyBatis框架——Mapper接口映射、给类起别名、MyBatis开启驼峰映射、MyBatis开启日志打印

目录 一、Mapper接口映射 1、创建数据库 2、搭建MVC分层结构 3、配置MyBatis全局参数 4、编辑DAO层接口 5、配置Mapper文件与DAO层绑定 &#xff08;1&#xff09;配置Mapper文件 &#xff08;2&#xff09;DAO层与Mapper文件标签的快速生成 6、代码测试 二、给类起别…

python|第四章考试题及练习题

本篇文章是对北京理工大学嵩天老师的《Python语言程序设计》第四章考试题及练习题的学习记录。 一、考试题 1、四位玫瑰数 问题描述&#xff1a; 四位玫瑰数是4位数的自幂数。自幂数是指一个 n 位数&#xff0c;它的每个位上的数字的 n 次幂之和等于它本身。‪‬‪‬‪‬‪‬…

【云原生-Docker】docker容器自定义DNS解析

描述 在特定的情况下&#xff0c;或者在网络策略特殊定义下&#xff0c;需要自定义dns进行域名访问&#xff0c;在宿主机上配置了域名解析&#xff0c;对于docker容器无效。对于局域网内的域名解析&#xff0c;Docker 需要到 Docker 容器中配置 hosts 文件。 实现方式 docke…

使用Pandas也可以进行数据可视化

数据可视化是数据分析的一个重要方面&#xff0c;它提供了一种理解数据并从中得出有意义见解的方法。Pandas 是最常见的于数据分析的 Python 库&#xff0c;它基于Matplotlib扩展了一些常用的可视化图表&#xff0c;可以方便的调用&#xff0c;本篇文章就让我们看看有哪些图表可…

使用JavaScript+Selenium玩转Web应用自动化测试

自动化测试 在软件开发过程中, 测试是功能验收的必要过程, 这个过程往往有测试人员参与, 提前编写测试用例, 然后再手动对测试用例进行测试, 测试用例都通过之后则可以认为该功能通过验收. 但是软件中多个功能之间往往存在关联或依赖关系, 某一个功能的新增或修改可能或影响到…

牛客网Python篇数据分析习题(四)

1.现有一个Nowcoder.csv文件&#xff0c;它记录了牛客网的部分用户数据&#xff0c;包含如下字段&#xff08;字段与字段之间以逗号间隔&#xff09;&#xff1a; Nowcoder_ID&#xff1a;用户ID Level&#xff1a;等级 Achievement_value&#xff1a;成就值 Num_of_exercise&a…