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

表现良好的最长时间段(LeetCode)

题目

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

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

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

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

解题

"""
时间复杂度: O(n),因为我们只遍历一次数组。
空间复杂度: O(n),用于存储前缀和及其对应的索引。
"""def longestWPI(hours):prefix_sum = 0prefix_map = {}max_length = 0for i, h in enumerate(hours):# 如果 h > 8,prefix_sum +1; 否则 -1prefix_sum += 1 if h > 8 else -1if prefix_sum > 0:# 如果前缀和大于0,说明从开始到i的子数组都满足条件max_length = i + 1else:# 检查是否存在 prefix_sum - 1,如果存在则说明有符合条件的子数组if prefix_sum - 1 in prefix_map:max_length = max(max_length, i - prefix_map[prefix_sum - 1])# 如果 prefix_sum 不在哈希表中,记录下它第一次出现的索引if prefix_sum not in prefix_map:prefix_map[prefix_sum] = ireturn max_length# 示例 1
hours = [9, 9, 6, 0, 6, 6, 9]
print(longestWPI(hours))  # 输出: 3
http://www.lryc.cn/news/424744.html

相关文章:

  • 【性能优化】DNS解析优化
  • 【剑指 offer】合并链表
  • 红酒与节日装饰:打造节日氛围的需备品
  • Element Plus的el-carousel走马灯平铺多张图片
  • 【promise】Promise的几个关键问题 (三)
  • 利用ZXing.Net Bindings for EmguCV识别条形码及绘制条形码边框17(C#)
  • IP代理如何增强网络安全性?
  • NDP(Neighbor Discovery Protocol)简介
  • 为何要隐藏源 IP 地址?
  • 目前最流行的前端构建工具,你知道几个?
  • C++函数模板温习总结
  • 【网络】套接字(socket)编程——TCP版
  • 水凝胶生物打印是什么?如何指导Organoids培养?有啥好处?
  • 从springBoot框架服务器上下载文件 自定义一个启动器
  • 某通电子文档安全管理系统 CDGAuthoriseTempletService1接口SQL注入漏洞复现 [附POC]
  • pythonselenium自动化测试实战项目(完整、全面)
  • 如何选择合适的虚拟机软件?对比Parallels Desktop 和VMware Fusion 使用虚拟机畅玩黑神话悟空
  • ESP32FreeRTOS开发笔记:2.定义、多任务与优先级调度
  • 【Python-办公自动化】1秒比较出2张表格之间的不同并标黄加粗
  • Linux下查看各进程的swap
  • 最后一个单词的长度 简单字符串问题
  • Autodesk Mudbox 2024:重塑创意边界的3D数字绘画与雕刻利器
  • 【python下用sqlite3, 多线程下报错,原因和解决 】
  • 学习记录——day30 网络编程 端口号port 套接字socket TCP实现网络通信
  • 【DataKit系列】数据迁移-实例搭建步骤(二)
  • 发送jsonp请求(前后端如何实现)
  • Leetcode—1239. 串联字符串的最大长度【中等】(unordered_set)
  • Spring Boot 3.x Rest API统一异常处理最佳实践
  • 线程的进阶学习
  • 13.1 Python 正则表达式基础