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

Leetcode 3439. Reschedule Meetings for Maximum Free Time I

  • Leetcode 3439. Reschedule Meetings for Maximum Free Time I
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3439. Reschedule Meetings for Maximum Free Time I

1. 解题思路

这一题其实思路上我觉得我有漏洞,但是好歹能过所有的测试样例,就先放在这里抛砖引玉了……

这一题我的思路的话就是考察将所有连续的 k k k个meeting进行合并,然后考察这个区间内总的时间和meeting的时间,两者相减就是合并之后能够获得的最大的freetime,然后遍历所有的连续 k k k个meeting,就可以得到对应的答案了。

因此,我们只需要首先将所有的meeting进行排序,然后使用累积数组考察所有会议持续的时间,就能够快速求得任意区间内的会议总时间和其他总时间了,然后两者相减即可得到对应的最大freetime,最后所有的结果里面取出最大值即可。

2. 代码实现

给出python代码实现如下:

class Solution:
    def maxFreeTime(self, eventTime: int, k: int, startTime: List[int], endTime: List[int]) -> int:
        meetings = sorted([(i, j, j-i) for i, j in zip(startTime, endTime)])
        n = len(meetings)
        ans = max(meetings[0][0], eventTime - meetings[-1][1])
        for i in range(n-1):
            ans = max(ans, meetings[i+1][0] - meetings[i][1])
        
        durations = list(accumulate([x[2] for x in meetings], initial=0))

        if k == n:
            return eventTime - durations[-1]
        
        for i in range(n-k+1):
            if i == 0:
                tot = meetings[i+k][0]
            elif i+k == n:
                tot = eventTime - meetings[i-1][1]
            else:
                tot = meetings[i+k][0] - meetings[i-1][1]
            d = durations[i+k] - durations[i]
            ans = max(ans, tot-d)
        return ans

提交代码评测得到:耗时146ms,占用内存45.8MB。


http://www.kler.cn/a/532177.html

相关文章:

  • LabVIEW微位移平台位移控制系统
  • C++:结构体和类
  • ChatGPT怎么回事?
  • 每日一题——小根堆实现堆排序算法
  • 【二分题目】
  • IntelliJ IDEA远程开发代理远程服务器端口(免费内网穿透)
  • 深度学习 Pytorch 建模可视化工具TensorBoard的安装与使用
  • 关于图像锐化的一份介绍
  • Spring 实现注入的方式
  • 深入解析FastParquet库:高效处理Parquet文件的Python利器
  • 【华为OD-E卷 - 任务最优调度 100分(python、java、c++、js、c)】
  • 【STM32系列】在串口上绘制正弦波
  • 目前市场主流的AI PC对于大模型本地部署的支持情况分析-Deepseek
  • 线程的概念
  • Linux远程登陆
  • PAT甲级1032、sharing
  • 华水967数据结构2024真题(回忆版)
  • chatGPT写的网页版贪吃蛇小游戏
  • 【Linux】线程池封装与介绍
  • 【Java】位图 布隆过滤器
  • 牛客周赛 Round 79
  • Fortunately 和 luckily区别
  • UE GameMode
  • Java 数据库连接池:HikariCP 与 Druid 的对比
  • 进程的环境变量
  • 期末数据库课程设计基于Java+MySQL+JDBC+JavaSwing实现的图书进销管理系统源代码+数据库