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

华茂达建设集团网站公司注册网上核名业务如何终止

华茂达建设集团网站,公司注册网上核名业务如何终止,织梦网站程序5.7首页模板,wordpress设置cdn缓存过期配置上一篇:算法随笔_49: 有效的括号-CSDN博客 题目描述如下: 给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」&#xf…

上一篇:算法随笔_49: 有效的括号-CSDN博客

=====

题目描述如下:

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

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

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

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

示例 1:

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

示例 2:

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

=====

算法思路:

根据题目描述,我们发现,判断“劳累的天数”是严格大于“不劳累的天数”,可以转化为一个求和问题。我们把大于8的元素置为1,小于等于8的元素置为-1,那么某个区间的元素和大于等于1时,就表示了“劳累的天数”严格大于“不劳累的天数”。

那么题目的要求返回表现良好时间段的最大长度,就变为了求元素和大于0的最长区间

对于计算区间元素和,有一个常用的方法: 前缀和

我们设数组nums,pre_sum。

pre_sum[i]表示nums的[0, i]区间的元素和。

pre_sum[j]表示nums的[0, j]区间的元素和。

i < j,因此[i+1, j]区间的元素和就是这两个前缀和的差,即,pre_sum[j] - pre_sum[i]。

介绍了计算区间元素和的方法,我们再来看一下如何寻找最长的区间。

我们先考虑以某个索引 j 为某个区间的右端点,那么如何求出这个区间的最左端点 i 呢?显然最左端点应该出现在从左往右数的第一个使pre_sum[j] - pre_sum[i]>0的索引处。但大于0的值有很多,我们选取哪个值来计算pre_sum[i]呢?我们选择1即可。假如pre_sum[j]=-5,我们选第一次出现的pre_sum[i]=-6,因为如果选择pre_sum[i]=-7,-8等。会导致索引i更靠近右侧,肯定不是最左端点。因此我们找到第一个前缀和为pre_sum[j]-1处的索引即可。

我们枚举所有索引,并找到它们各自的最长区间,最后取它们的最大值即为最终答案。

基本的算法如下:

1. 我们设res为最大区间长度,初始值为0。从左往右枚举数组hours,同时计算当前索引的前缀和pre_sum。如果hours[i]>8,pre_sum加1,否则减1。

2. 把第一次出现的pre_sum存入字典sum2ind中,值为索引i,即,sum2ind[pre_sum]=i。

3.  判断pre_sum-1是否存在于sum2ind,如果存在,用当前索引i减去sum2ind[pre_sum -1]。这就是以当前索引 i 为右端点的最长区间长度seg_len。同时更新res=max(res, seg_len) 。

对于pre_sum大于0的情况,代码实现时有两点需要注意:

1.  我们把前缀和为0的索引设置在-1处,即sum2ind[0]=-1。以方便后面的计算。

2.  当前缀和大于0时,我们统一把pre_sum置为1。这并不影响最终的结果,因为当前缀和大于0时,它的最左端点就是sum2ind[0]=-1处。我们把它置为1,也是为了方便计算前面算法提到的步骤3。当所有pre_sum > 0 时,pre_sum -1都能定位到sum2ind[0]=-1处。

此算法的时间复杂度为O(n) 。下面是代码实现:

class Solution(object):def longestWPI(self, hours):""":type hours: List[int]:rtype: int"""sum2ind = {0: -1}pre_sum = 0res = 0for i, hour in enumerate(hours):pre_sum += 1 if hour > 8 else -1k = 1 if pre_sum > 0 else pre_sumif k - 1 in sum2ind:res = max(res, i - sum2ind[k - 1])if k not in sum2ind:sum2ind[k] = ireturn res

关键词: 前缀和

http://www.dtcms.com/a/423830.html

相关文章:

  • 从虚拟背景到绿幕替换:人像分割功能在直播美颜sdk中的落地应用
  • 建设电影网站论文微信营销模式有哪些
  • Spring的配置(使用注解)
  • Codex CLI 配置 Azure OpenAI GPT-5-codex 指南
  • SAP与阿里巴巴战略合作升级:四大核心云解决方案落地阿里云
  • 用网站模板做新网站网络营销实训报告
  • Spring Ai Alibaba开发指南
  • 建立什么网站赚钱淘宝交易指数换算工具
  • Sirius 开源免费的漏扫工具
  • 网站可以做被告嘛wordpress 设置404
  • flink api-datastream api-transformation算子
  • 自己做的网站如何发布什么公司可以做网站等级保护
  • 怎么做网站自动响应新手做淘宝客网站教程
  • 深度解析ZStack Cloud v5.4.0 LTS 基础架构三大核心突破
  • markitdown,面向AI输入的文档转换工具
  • C4D储卡器底部塑料壳建模之内部结构详解
  • 泉州网站搭建统计局网站集约化建设方案
  • Hanlp 配置
  • 网站开发实例拍拍网站源码
  • 湖北省建设厅信息网站模板建设网站
  • 计算机网络4
  • 【硬科普】什么是克尔效应
  • Zemax:初学者的混合模式
  • 烟台小学网站建设怎么通过网站打广告
  • 广州途道信息科技有限公司:以创新与责任,铸就教育机器人领军品牌
  • 汇世界迎全运 广州国际社区运动嘉年华举行,BOSMA博冠现场展示并分享与科技全运的故事
  • 电子商务网站建设域名广州黄埔做网站
  • 基于单片机的盲人智能水杯(论文+源码)
  • 广州网站设计皆赞乐云践新装修公司网站php源码
  • Java SE “语法”面试清单(含超通俗生活案例与深度理解)