LeetCode 436. Find Right Interval
来源:互联网 发布:达内java五虎将 编辑:程序博客网 时间:2024/05/16 06:03
题目链接 436. Find Right Interval
题意
给定一组区间,对于每一个区间i,检查是否存在一个区间j的start点大于或等于i的end点的区间i,称为j是i的“右边”。
对于任何区间i,你需要存储的最小区间j的下标,这意味着区间j对于区间i来说拥有最小的start点来建立“右边”关系,如区间j不存在,为区间i存-1。最后存储每一个区间的结果到数组。
Note:
1.可以假设间隔的终点总是大于起始点。
2.可以假设这些间隔没有一个相同的起点。
Example 1:
Input: [ [1,2] ]
Output: [-1]
Explanation: There is only one interval in the collection, so it outputs -1.Example 2:
Input: [ [3,4], [2,3], [1,2] ]
Output: [-1, 0, 1]
Explanation: There is no satisfied “right” interval for [3,4].
For [2,3], the interval [3,4] has minimum-“right” start point;
For [1,2], the interval [2,3] has minimum-“right” start point.Example 3:
Input: [ [1,4], [2,3], [3,4] ]
Output: [-1, 2, -1]
Explanation: There is no satisfied “right” interval for [1,4] and [3,4].
For [2,3], the interval [3,4] has minimum-“right” start point.
思路
对于每一个区间的end,找到满足start>=end的最小start区间下标。
转化为在序列中查找是否>=target的数的下标。使用二分法。
代码
class Solution(object): def findRightInterval(self, intervals): blst = sorted([(e.start, i) for i, e in enumerate(intervals)]) ans = [] for e in intervals: ans.append(self.bsearch(blst, e.end)) return ans def bsearch(self, lst, val): l, r = 0, len(lst) - 1 while (l < r): m = (l + r)/2; if lst[m][0] < val: l = m + 1 else: r = m return -1 if lst[l][0] < val else lst[l][1]
- LeetCode 436. Find Right Interval
- [Leetcode] 436. Find Right Interval
- [leetcode]436. Find Right Interval
- Leetcode 436. Find Right Interval
- LeetCode 436. Find Right Interval
- Leetcode-436. Find Right Interval
- [LeetCode]436. Find Right Interval
- leetcode 436. Find Right Interval
- leetcode 436. Find Right Interval
- Leetcode Find Right Interval
- leetcode题解-436. Find Right Interval
- [Leetcode] 436. Find Right Interval 解题报告
- 436. Find Right Interval
- 436. Find Right Interval
- 436. Find Right Interval
- 436. Find Right Interval
- 436. Find Right Interval
- 436. Find Right Interval
- 【Java】替换-删除-反转字符串
- 汉诺塔(内部+伪图形)
- 基础练习 特殊回文数
- Spring Boot 日志记录 SLF4J
- 1010. Radix (25)
- LeetCode 436. Find Right Interval
- regfile.v
- ffmpeg简单视频播放器
- ListView优化使用imageLoader下载和缓存图片,图片异步加载,解决图片多了之后容易卡顿。
- JQuery回顾--常用选择器
- 多重背包
- unix网络编程第一个程序-获取时间(含借鉴)
- 等了两天了还没解决
- asp关于新消息弹出题在线等解决立马结贴