第 11 场双周赛-5089. 安排会议日程(双指针)
你是一名行政助理,手里有两位客户的空闲时间表:slots1
和 slots2
,以及会议的预计持续时间 duration
,请你为他们安排合适的会议时间。
「会议时间」是两位客户都有空参加,并且持续时间能够满足预计时间 duration
的 最早的时间间隔。
如果没有满足要求的会议时间,就请返回一个 空数组。
「空闲时间」的格式是 [start, end]
,由开始时间 start
和结束时间 end
组成,表示从 start
开始,到 end
结束。
题目保证数据有效:同一个人的空闲时间不会出现交叠的情况,也就是说,对于同一个人的两个空闲时间 [start1, end1]
和 [start2, end2]
,要么 start1 > end2
,要么 start2 > end1
。
示例 1:
输入:slots1 = [[10,50],[60,120],[140,210]], slots2 = [[0,15],[60,70]], duration = 8 输出:[60,68]
示例 2:
输入:slots1 = [[10,50],[60,120],[140,210]], slots2 = [[0,15],[60,70]], duration = 12 输出:[]
提示:
1 <= slots1.length, slots2.length <= 10^4
slots1[i].length, slots2[i].length == 2
slots1[i][0] < slots1[i][1]
slots2[i][0] < slots2[i][1]
0 <= slots1[i][j], slots2[i][j] <= 10^9
1 <= duration <= 10^6
思路:我们首先需要将这一系列坐标按x轴进行排序,然后我们可以采用双指针的方法遍历两个列表完成求解。
指针移动的条件:因为x轴是从小到大排好序的,因此我们只用考虑当前谁的纵坐标较小就先移动谁。
class Solution {class node{ int x,y;public node(int x,int y){this.x=x;this.y=y;}}class mySort implements Comparator<node>{@Overridepublic int compare(node o1, node o2) {if(o1.x==o2.x)return o1.y-o2.y;return o1.x-o2.x;}}public List<Integer> minAvailableDuration(int[][] slots1, int[][] slots2, int duration) {List<node> list1=new ArrayList<node>();List<node> list2=new ArrayList<node>();for(int i=0;i<slots1.length;i++)list1.add(new node(slots1[i][0],slots1[i][1]));for(int i=0;i<slots2.length;i++)list2.add(new node(slots2[i][0],slots2[i][1]));Collections.sort(list1,new mySort());Collections.sort(list2,new mySort());for(int i=0;i<list1.size();i++)System.out.printf("%d %d\n",list1.get(i).x,list1.get(i).y);List<Integer> ans=new ArrayList<>();int i=0,j=0,p=Integer.MAX_VALUE;while(i<list1.size() && j<list2.size()){int r=Math.min(list1.get(i).y, list2.get(j).y);//System.out.printf("%d %d %d\n",list1.get(i).x,list2.get(j).x,r);if(list1.get(i).x<=list2.get(j).x){if(r-list2.get(j).x>=duration){p=list2.get(j).x+duration;break;}}else{if(r-list1.get(i).x>=duration){p=list1.get(i).x+duration;break;}}if(list1.get(i).y==r) i++;if(list2.get(j).y==r) j++;}System.out.println(p);if(p!=Integer.MAX_VALUE){ans.add(p-duration);ans.add(p);}return ans;}
}
第 11 场双周赛-5089. 安排会议日程(双指针)相关推荐
- 5089. 安排会议日程
你是一名行政助理,手里有两位客户的空闲时间表:slots1 和 slots2,以及会议的预计持续时间 duration,请你为他们安排合适的会议时间. 「会议时间」是两位客户都有空参加,并且持续时间能 ...
- LeetCode 第 30 场双周赛(477/2545,前18.7%,第2次全部通过)
文章目录 1. 比赛结果 2. 题目 1. LeetCode 5177. 转变日期格式 easy 2. LeetCode 5445. 子数组和排序后的区间和 medium 3. LeetCode 54 ...
- LeetCode第45场双周赛-解题报告
LeetCode第45场双周赛-解题报告 A. 唯一元素的和 原题链接 https://leetcode-cn.com/problems/sum-of-unique-elements/ 解题思路 因为 ...
- 以赛促练-力扣第85场双周赛以及第307场周赛
文章目录 第85场双周赛 T3.字母移位II T4.删除操作后的最大子段和 第307场周赛 T2.最大回文数字 T3.感染二叉树需要的总时间 T4.找出数组的第K大和 第85场双周赛 T1直接暴力枚举 ...
- [LeetCode周赛复盘] 第 89 场双周赛20221015
[LeetCode周赛复盘] 第 89 场双周赛20221015 一.本周周赛总结 二. [Easy] 6208. 有效时间的数目 1. 题目描述 2. 思路分析 3. 代码实现 三.[Medium] ...
- 20220219:力扣第72场双周赛题解
力扣第72场双周赛 题目 思路与算法 代码实现 写在最后 题目 统计数组中相等且可以被整除的数对 找到和为给定整数的三个连续整数 拆分成最多数目的偶整数之和 统计数组中好三元组数目 思路与算法 前三题 ...
- 20210530:力扣第53场双周赛题解
力扣第53场双周赛题解 题目 思路与算法 代码实现 写在最后 题目 长度为三且各字符不同的子字符串 数组中最大数对和的最小值 矩阵中最大的三个菱形和 思路与算法 长度为三且各字符不同的子字符串:遍历查 ...
- 20201023:力扣第37场双周赛(上)
力扣第37场双周赛(上) 题目 思路与算法 代码实现 写在最后 题目 删除某些元素后的数组均值 网络信号最好的坐标 思路与算法 第二题直接暴力就可以了,计算每个点的所有偏移量存入list,即以(0,0 ...
- 【双周赛】第74场双周赛
第74场双周赛 6020. 将数组划分成相等数对 6021. 字符串中最多数目的子字符串 6022. 将数组和减半的最少操作次数 6023. 用地毯覆盖后的最少白色砖块 6020. 将数组划分成相等数 ...
最新文章
- ThreadLocal和单例对象比较
- 矩阵乘法的本质是什么
- VS2010 手动为控件添加事件处理函数
- Redis源码学习-MasterSlave的命令交互
- 机器学习-LR推导及与SVM的区别
- java图形界面的监听_非专业码农 JAVA学习笔记 用户图形界面设计与实现-所有控件的监听事件...
- 什么是写一个java类,Java什么是类?class的相关介绍
- C++基础04-类基础
- 一个demo学会c++编程
- 睿远基金副总经理傅鹏博:用实业思维做投资 在认知范围之内做选择
- SharePoint 2019 预览版下载地址(中文)
- 批量查询网站收录情况的站长工具
- 5个适合提升自己的自学网站,每一个都很强大, 适合职场人自我提升的学习网站,利用起来,离加薪更近一步
- oracle根据关键字搜索存储过程
- STM32 Cubemax(十一) ——JY901陀螺仪数据的读取与简单数据处理
- 计算机英语中文谐音,翻译成中文的英文歌 英文歌用中文谐音唱
- base64图片 复制到系统剪切板
- Live800:大数据将如何改变客户服务?
- 一些常用函数的拉普拉斯变换
- 从今天开始给自己定一个小目标
热门文章
- Misc,院赛:两道签到、忘记密码
- word流程图怎么做虚线框_如何在visio中画虚线框以及将visio图形复制到word文档
- 如何解决E680i经常有内存不足提示的问题
- 【愚公系列】2022年09月 微信小程序-three.js绘制正方体
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之6---移动增值业务概述
- 计算机信息安全攻防大赛,2018年度信息安全攻防大赛圆满收官
- 05丨指标关系:你知道并发用户数应该怎么算吗?
- 第二期预告|中国工程院院刊:信息与电子工程领域青年学术前沿论坛
- 新唐M0内核。接口的TTL电平和斯密特电平的使用
- 在线生成图片大全——绝对经典