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

Leetcode.1124 表现良好的最长时间段

题目链接

Leetcode.1124 表现良好的最长时间段 Rating : 1908

题目描述

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

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

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

示例 1:

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

示例 2:

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

提示

  • 1<=hours.length<=1041 <= hours.length <= 10^41<=hours.length<=104
  • 0<=hours[i]<=160 <= hours[i] <= 160<=hours[i]<=16

分析:

问题转化工作时间大于8h 看作+1工作时间 小于等于 8h 看作 -1。所以原问题转化为 求一段连续的区间 [l,r],这个区间和是大于0的,且区间长度最大

我们用 前缀和 可以在 O(1)O(1)O(1) 的复杂度求出一段连续区间的和。

如果我们暴力枚举 n-1个左端点,寻找最长的区间和sum > 0的区间,会超时…

为此我们使用一个 单调栈 来记录,所有可能的左端点。

在这里插入图片描述
当遍历到 s[i]s[i]s[i] 时,如果 s[j]<s[i]s[j] < s[i]s[j]<s[i],说明 s[j]s[j]s[j] 就可能称为一个左端点。

如果想让 s[i]s[i]s[i] 也有成为左端点的可能,后面必然有一个 s[k]>s[i]s[k] > s[i]s[k]>s[i],但是这样的话 s[k]>s[j]s[k] > s[j]s[k]>s[j]s[i]s[i]s[i] 相比 s[j]s[j]s[j] 更可能成为一个左端点。

所以栈 stk中,要记录的就是这样的点,栈中的元素是从 栈底到栈顶 依次递减的。

最后,我们倒序遍历 前缀和数组s,如果当前的s[i]大于 栈顶元素 s[stk.top()],就更新最大值。

时间复杂度:O(n)O(n)O(n)

代码:

class Solution {
public:int longestWPI(vector<int>& hours) {int n = hours.size();//前缀和数组int s[n+1];s[0] = 0;stack<int> st;//先插入0,处理边界情况st.push(0);for(int i = 1;i <= n;i++){s[i] = s[i-1] + (hours[i-1] > 8 ? 1 : -1);if(s[st.top()] > s[i]) st.push(i);}int ans = 0;for(int i = n;i >= 1;--i){while(!st.empty() && s[i] > s[st.top()]){ans = max(ans , i - st.top());st.pop();}}return ans;}
};

相关文章:

Leetcode.1124 表现良好的最长时间段

题目链接 Leetcode.1124 表现良好的最长时间段 Rating &#xff1a; 1908 题目描述 我们认为当员工一天中的工作小时数大于 8 小时的时候&#xff0c;那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」&#xff0c;意味在这段时间内&#xff0c;「劳累的天数」是严格…...

达梦数据库会话、事务阻塞排查步骤

查询阻塞的事务IDselect * from v$trxwait order by wait_time desc;--单机select * from v$dsc_trxwait order by wait_time desc;–DSC集群查询阻塞事务的会话信息select sf_get_session_sql(sess_id),* from v$sessions where trx_id69667;--单机select sf_get_session_sql(…...

sqlServer 2019 开发版(Developer)下载及安装

下载软件 官网只有2022的&#xff0c;2019使用百度网盘进行下载 安装下崽器 选择自定义安装 选择语言、以及安装位置 点击“安装” 安装 SQL Server 可能的故障 以上步骤安装后会弹出以上界面&#xff0c;如果未弹出&#xff0c;手动去安装目录下点击 SETUP.EXE 文件…...

使用Arthas定位问题

功能概述 首先&#xff0c;Arthas的常用功能大概有以下几个&#xff1a; 解决依赖冲突 sc命令&#xff1a;模糊查看当前 JVM 中是否加载了包含关键字的类&#xff0c;以及获取其完全名称。 sc -d 关键字 注意使用 sc -d 命令&#xff0c;获取 classLoaderHash命令&#xff1a…...

性能测试之tomcat+nginx负载均衡

nginx tomcat 配置准备工作&#xff1a;两个tomcat 执行命令 cp -r apache-tomcat-8.5.56 apache-tomcat-8.5.56_2修改被复制的tomcat2下conf的server.xml 的端口号&#xff0c;不能与tomcat1的端口号重复&#xff0c;不然会启动报错 ,一台电脑上想要启动多个tomcat&#xff0c…...

【手写 Vuex 源码】第十一篇 - Vuex 插件的开发

一&#xff0c;前言 上一篇&#xff0c;主要介绍了 Vuex-namespaced 命名空间的实现&#xff0c;主要涉及以下几个点&#xff1a; 命名空间的介绍和使用&#xff1b;命名空间的逻辑分析与代码实现&#xff1b;命名空间核心流程梳理&#xff1b; 本篇&#xff0c;继续介绍 Vu…...

opencv基础知识和绘图图形

大家好&#xff0c;我是csdn的博主&#xff1a;lqj_本人 这是我的个人博客主页&#xff1a; lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…...

15- 决策回归树, 随机森林, 极限森林 (决策树优化) (算法)

1. 决策回归树: from sklearn.tree import DecisionTreeRegressor model DecisionTreeRegressor(criterionmse,max_depth3) model.fit(X,y) # X是40个点 y是一个圆 2. 随机森林 稳定预测: from sklearn.ensemble import RandomForestClassifier # model RandomForestC…...

Flink相关的记录

Flink源码编译首次编译的时候&#xff0c;去除不必要的操作&#xff0c;同时install会把Flink中的module安装到本地仓库&#xff0c;这样依赖当前module的其他组件就无需去远程仓库拉取当前module&#xff0c;节省了时间。mvn clean install -T 4 -DskipTests -Dfast -Dmaven.c…...

配置可视化-基于form-render的无代码配置服务(一)

背景 有些业务场景需要产品或运营去配置JSON数据提供给开发去使用&#xff08;后面有实际业务场景的说明&#xff09;&#xff0c;原有的业务流程&#xff0c;非开发人员&#xff08;后面直接以产品指代&#xff09;把数据交给开发&#xff0c;再由开发去更新JSON数据。对于产…...

Java 代理模式详解

1、代理模式 代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问&#xff0c;这样就可以在不修改原目标对象的前提下&#xff0c;提供额外的功能操作&#xff0c;扩展目标对象的功能。 代理模式的主要作用是扩展目标对象…...

知识付费小程序怎么做_分享知识付费小程序的作用

在线知识付费产业的主要业务逻辑是基于用户的主动学习需求&#xff0c;为其提供以跨领域基础知识与技能为核心的在线知识服务&#xff0c;提升其达到求知目的的效率。公众号和小程序的迅速发展&#xff0c;又为知识付费提供了技术支持&#xff0c;从而促进了行业的进一步发展。…...

14- 决策树算法 (有监督学习) (算法)

决策树是属于有监督机器学习的一种决策树算法实操: from sklearn.tree import DecisionTreeClassifier # 决策树算法 model DecisionTreeClassifier(criterionentropy,max_depthd) model.fit(X_train,y_train)1、决策树概述 决策树是属于有监督机器学习的一种&#xff0c;起源…...

如何编译和运行C++程序?

C 和C语言类似&#xff0c;也要经过编译和链接后才能运行。在《C语言编译器》专题中我们讲到了 VS、Dev C、VC 6.0、Code::Blocks、C-Free、GCC、Xcode 等常见 IDE 或编译器&#xff0c;它们除了可以运行C语言程序&#xff0c;还可以运行 C 程序&#xff0c;步骤是一样的&#…...

Golang 给视频添加背景音乐 | Golang工具

目录 前言 环境依赖 代码 总结 前言 本文提供给视频添加背景音乐&#xff0c;一如既往的实用主义。 主要也是学习一下golang使用ffmpeg工具的方式。 环境依赖 ffmpeg环境安装&#xff0c;可以参考我的另一篇文章&#xff1a;windows ffmpeg安装部署_阿良的博客-CSDN博客 …...

让AI护理医疗:解决卫生系统的痛点

一、引言 1.对医疗领域中AI技术的介绍 随着人工智能的不断发展&#xff0c;它已经成为了各个领域中的重要组成部分。在医疗领域中&#xff0c;AI技术也逐渐发挥着越来越重要的作用。从诊断到治疗&#xff0c;从健康管理到研究&#xff0c;人工智能已经深刻地影响着医疗领域的…...

Windows 离线安装 MySQL 8

目录 1. 下载离线安装包 2. 上传解压 3 配置 my.ini 文件 4 设置系统环境变量 5 安装 MySQL 6 登录 MySQL 客户环境是内网环境&#xff0c;不能访问外网&#xff0c;只能离线安装 MySQL 了。 1. 下载离线安装包 MySQL 离线压缩包官网下载地址&#xff1a;MySQL :: Down…...

【前端攻城狮之vue基础】02路由+嵌套路由+路由query/params传参+路由props配置+replace属性+编程式路由导航+缓存路由组件

路由的基础知识1.路由简介2.路由基本使用3.嵌套路由4.传递路由的query传参# 5.传递路由的params参数6.路由的props传参配置7.路由router-link标签的replace属性8.编程式路由导航9.缓存路由组件1.路由简介 路由是一条条对应的key-value关系&#xff0c;key就是前端地址栏的路径…...

CHAPTER 1 Zabbix介绍及安装

Zabbix介绍及安装1.1 Zabbix监控1 为什么要监控1.1 网站可用性2 监控什么东西2.1 监控范畴3 怎么来监控3.1 远程管理服务器3.2 监控硬件3.3 查看cpu相关3.4 内存3.5 磁盘3.6 监控网络4 监控工具总览5 zabbix介绍5.1 zabbix的组成5.2 zabbix监控范畴1.2 安装zabbix1 环境检查2 安…...

认识V模型、W模型、H模型

软件测试与软件工程息息相关&#xff0c;软件测试是软件工程组成中不可或缺的一部分。 在软件工程、项目管理、质量管理得到规范化应用的企业&#xff0c;软件测试也会进行得比较顺利&#xff0c;软件测试发挥的价值也会更大。 要关注软件工程、质量管理以及配置管理与软件测试…...

excel ttest检测

1、excel函数含义 TTEST(array1,array2,tails,type) ▪ Array1: 第一组数据集 ▪ Array2: 第二组数据集 ▪ Tails: 用于定义所返回的分布的尾数: 1 代表单尾&#xff1b;2 代表双尾 ▪ Type: 用于定义 t-检验的类型: 1 代表成对检验&#xff1b;2 代表双样本等方差假设&am…...

PDFPrinting.Net操作进行细粒度控制

PDFPrinting.Net操作进行细粒度控制 PDFPrinting.Net能够容易且灵活地预测完美的打印结果以及用户文件的示例性显示。可以快速浏览.NET PDF打印中最关键的元素。如果用户需要获得更详细的概述&#xff0c;那么他可以查看快速入门手册&#xff0c;甚至是现有文档的详细概述参考。…...

SegPGD

在这项工作中&#xff0c;我们提出了一种有效和高效的分割攻击方法&#xff0c;称为SegPGD。此外&#xff0c;我们还提供了收敛性分析&#xff0c;表明在相同次数的攻击迭代下&#xff0c;所提出的SegPGD可以创建比PGD更有效的对抗示例。此外&#xff0c;我们建议应用我们的Seg…...

ESP-IDF + Vscode ESP32 开发环境搭建以及开发入门

ESP-IDF Vscode ESP32 开发环境搭建以及开发入门 文章目录ESP-IDF Vscode ESP32 开发环境搭建以及开发入门1. 前言2. 下载开发工具3. 配置工具4. 创建工程5. 解决vscode找不到头文件&#xff0c;波浪线警告6. 添加自己的组件6.1 组件说明6.2 添加项目组件6.3 添加扩展组件7. …...

SpringMvc的请求和响应

SpringMvc的数据响应 1.springmvc的数据相应方式 &#xff08;1&#xff09;页面跳转 直接返回字符串 通过ModelAndView对象返回 &#xff08;2&#xff09;回写数据 直接返回字符串 返回对象或集合 页面跳转 jsp页面 <% page contentType"text/html;charsetUTF-8&q…...

【Vue3】首页主体-面板组件封装

首页主体-面板组件封装 新鲜好物、人气推荐俩个模块的布局结构上非常类似&#xff0c;我们可以抽离出一个通用的面板组件来进行复用 目标&#xff1a;封装一个通用的面板组件 思路分析 图中标出的四个部分都是可能会发生变化的&#xff0c;需要我们定义为可配置主标题和副标题…...

部署 K8s 集群

1 .部署k8s的两种方式目前生产部署Kubernetes集群主要有两种方式&#xff1a;kubeadmKubeadm是一个K8s部署工具&#xff0c;提供kubeadm init和kubeadm join&#xff0c;用于快速部署Kubernetes集群。二进制包从github下载发行版的二进制包&#xff0c;手动部署每个组件&#x…...

关于北京君正:带ANC的2K网络摄像头用户案例

如果远程办公是您的未来&#xff0c;或者您经常通过视频通话与远方的朋友和亲戚交谈&#xff0c;那么您可以考虑购买网络摄像头以显著改善您的沟通。Anker PowerConf C200是个不错的选择。 Anker PowerConf C200专为个人工作空间而设计&#xff0c;能够以每秒30帧的速度拍摄2K…...

ccc-Backpropagation-李宏毅(7)

文章目录NotationBackpropagationForward passBackward passSummaryNotation 神经网络求解最优化Loss function时参数非常多&#xff0c;反向传播使用链式求导的方式提升计算梯度向量时的效率&#xff0c;链式法则如下&#xff1a; Backpropagation 损失函数计算为所有样本…...

找出字符串中第一个匹配项的下标-力扣28-java

一、题目描述给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 -1 。示例 1&#xff1a;输入&#xff1a;hayst…...

柳州seo培训/无锡seo公司找哪家好

记住中间的lstm层需要返回所有timestep的输出作为下一层lstm的输入&#xff0c;所以除了最后一层lstm外其它层的return_sequencesTrue from keras.layers import LSTM, Input inputs Input(shape[4, 1]) # num_step(4) input_size(1) lstm1 LSTM(units32, return_sequences…...

wordpress 开关 边栏 选择 模板/免费二级域名分发平台

今天是十月的最后一天啦&#xff0c;转眼2019年只剩下两个月了&#xff0c;这时间啊&#xff0c;走得真快&#xff0c;还没好好感受呢&#xff0c;都快要2020年了。而小编倒好&#xff0c;还觉得现在是2018年呢~哈哈。好啦&#xff0c;不说废话了&#xff0c;还是来看看今天的教…...

win10虚拟目录 做网站/网络推广代理平台

CNN目标检测&#xff08;三&#xff09;&#xff1a;SSD详解 转载 浩瀚之水_csdn 最后发布于2017-08-26 08:30:47 阅读数 41732 收藏 展开 SSD github : https://github.com/weiliu89/caffe/tree/ssd SSD paper : https://arxiv.org/abs/1512.02325 SSD eccv2016 slide …...

点击网站/星巴克营销策划方案

1.检查系统是否装有mysql rpm -qa | grep mysql 返回空值&#xff0c;说明没有安装 2.删除可用 yum remove mysql 3.下载mysql的repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 4.安装mysql-community-release-el7-5.noarch.rpm包 sudo rpm -…...

wordpress 4.9.8微博图床/seo刷关键词排名软件

前言 在上一次分析中&#xff0c;分析到了 HandoffAddress LoadBootImage(); 在分析这个函数之前&#xff0c;在从0地址运行之前&#xff0c;在复位&#xff08;上电复位&#xff09;之后会从bootROM这个位置开始执行代码&#xff0c;在bootROM中&#xff0c;程序会将QSPI&…...

wordpress 响应速度慢/东莞网站制作外包

2019独角兽企业重金招聘Python工程师标准>>> 优先级队列 首先&#xff0c;我们要了解一下什么叫队列&#xff1a; 队列是一种特殊的线性表&#xff0c;特殊之处在于它只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端&#xff0…...