Lintcode 1897 · Meeting Room III [Python]

2023-12-22 21:18

本文主要是介绍Lintcode 1897 · Meeting Room III [Python],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

G家的题目确实质量高,扫描线+前缀和,尤其是前缀和的使用上考察上,很有点儿东西。首先设置时间线数组记录一个会议开始和结束,开始的地方设置+1,结束的时候-1,然后开始遍历这个时间线数组,并做前缀和计算,目的是看某一段内有多少个会议,当前缀和数字大于等于会议室数量的地方,我们在前缀和的数组里设置为1,而少于会议室数量的时候设置为0,则,两个1之间的0的持续段落就是可以放置会议的地方,随后,我们将得到的前缀和数组再次进行前缀和计算,则我们可以通过数组里,一段区间内的数字的不改变知道哪些连续的区域内可以满足放置新的会议(ask)。注意最后,ask[i][0]-1, 目的是确保这个新会议的开始位置,不会某个已有会议的开始时间,起码得是这段连续相同数字的第二位。然后ask[i][1]-1,是确保只要这段连续的位置到达的截止时间是原有某会议的开始时间之前一位数字。

class Solution:"""@param intervals: the intervals@param rooms: the sum of rooms@param ask: the ask@return: true or false of each meeting"""def meetingRoomIII(self, intervals, rooms, ask):# Write your code here.cursum = [0]*50010inter = [0]*50010res = [False]*len(ask)maxtime = float('-inf')for interv in intervals:inter[interv[0]]+=1inter[interv[1]]-=1maxtime = max(maxtime, interv[1])for a4k in ask:maxtime = max(maxtime, a4k[1])cummulation = 0for i in range(1, maxtime+1):cummulation += inter[i]if cummulation < rooms:cursum[i] = 0else:cursum[i] = 1for i in range(1, maxtime+1):cursum[i] += cursum[i-1]for i in range(len(ask)):if cursum[ask[i][0]-1] == cursum[ask[i][1]-1]:res[i] = True else:res[i] = False return res

1897 · Meeting Room III
Algorithms
Medium
Accepted Rate
26%

DescriptionSolutionNotesDiscussLeaderboard
Description
you have a list intervals of current meetings, and some meeting rooms with start and end timestamp.When a stream of new meeting ask coming in, judge one by one whether they can be placed in the current meeting list without overlapping…A meeting room can only hold one meeting at a time. Each inquiry is independent.

The meeting asked can be splited to some times. For example, if you want to ask a meeting for [2, 4], you can split it to [2,3] and [3, 4].

Ensure that Intervals can be arranged in rooms meeting rooms
Ensure that the end time of any meeting is not greater than 50000
|Intervals|<=50000
|ask|<=50000
rooms<=20

Example
Example 1:

Input:
Intervals:[[1,2],[4,5],[8,10]], rooms = 1, ask: [[2,3],[3,4]]
Output:
[true,true]
Explanation:
For the ask of [2,3], we can arrange a meeting room room0.
The following is the meeting list of room0:
[[1,2], [2,3], [4,5], [8,10]]
For the ask of [3,4], we can arrange a meeting room room0.
The following is the meeting list of room0:
[[1,2], [3,4], [4,5], [8,10]]
Example 2:

Input:
[[1,2],[4,5],[8,10]]
1
[[4,5],[5,6]]
Output:
[false,true]

这篇关于Lintcode 1897 · Meeting Room III [Python]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/525515

相关文章

python中列表list切分的实现

《python中列表list切分的实现》列表是Python中最常用的数据结构之一,经常需要对列表进行切分操作,本文主要介绍了python中列表list切分的实现,文中通过示例代码介绍的非常详细,对大家... 目录一、列表切片的基本用法1.1 基本切片操作1.2 切片的负索引1.3 切片的省略二、列表切分的高

基于Python实现一个PDF特殊字体提取工具

《基于Python实现一个PDF特殊字体提取工具》在PDF文档处理场景中,我们常常需要针对特定格式的文本内容进行提取分析,本文介绍的PDF特殊字体提取器是一款基于Python开发的桌面应用程序感兴趣的... 目录一、应用背景与功能概述二、技术架构与核心组件2.1 技术选型2.2 系统架构三、核心功能实现解析

通过Python脚本批量复制并规范命名视频文件

《通过Python脚本批量复制并规范命名视频文件》本文介绍了如何通过Python脚本批量复制并规范命名视频文件,实现自动补齐数字编号、保留原始文件、智能识别有效文件等功能,听过代码示例介绍的非常详细,... 目录一、问题场景:杂乱的视频文件名二、完整解决方案三、关键技术解析1. 智能路径处理2. 精准文件名

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

Python使用PIL库将PNG图片转换为ICO图标的示例代码

《Python使用PIL库将PNG图片转换为ICO图标的示例代码》在软件开发和网站设计中,ICO图标是一种常用的图像格式,特别适用于应用程序图标、网页收藏夹图标等场景,本文将介绍如何使用Python的... 目录引言准备工作代码解析实践操作结果展示结语引言在软件开发和网站设计中,ICO图标是一种常用的图像

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

使用Python实现表格字段智能去重

《使用Python实现表格字段智能去重》在数据分析和处理过程中,数据清洗是一个至关重要的步骤,其中字段去重是一个常见且关键的任务,下面我们看看如何使用Python进行表格字段智能去重吧... 目录一、引言二、数据重复问题的常见场景与影响三、python在数据清洗中的优势四、基于Python的表格字段智能去重

Python中如何控制小数点精度与对齐方式

《Python中如何控制小数点精度与对齐方式》在Python编程中,数据输出格式化是一个常见的需求,尤其是在涉及到小数点精度和对齐方式时,下面小编就来为大家介绍一下如何在Python中实现这些功能吧... 目录一、控制小数点精度1. 使用 round() 函数2. 使用字符串格式化二、控制对齐方式1. 使用

Python如何快速下载依赖

《Python如何快速下载依赖》本文介绍了四种在Python中快速下载依赖的方法,包括使用国内镜像源、开启pip并发下载功能、使用pipreqs批量下载项目依赖以及使用conda管理依赖,通过这些方法... 目录python快速下载依赖1. 使用国内镜像源临时使用镜像源永久配置镜像源2. 使用 pip 的并

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常