问题:

给定一组区间,对于每一个区间 i,检查是否存在一个区间 j,它的起始点大于或等于区间 i 的终点,这可以称为 j 在 i 的“右侧”。

对于任何区间,你需要存储的满足条件的区间 j 的最小索引,这意味着区间 j 有最小的起始点可以使其成为“右侧”区间。如果区间 j 不存在,则将区间 i 存储为 -1。最后,你需要输出一个值为存储的区间值的数组。

注意:

你可以假设区间的终点总是大于它的起始点。
    你可以假定这些区间都不具有相同的起始点。

思路:

第一种方法暴力法,时间复杂度为O(n^2),空间复杂度为O(n)

第二种方法排序+扫描,首先基于左端点排序,然后再扫描确定。时间复杂度为O(n^2),空间复杂度为O(n)

第三种方法排序+二分法。时间复杂度为O(nlgn),空间复杂度为O(n)

第四种方法使用treemap,信赖于TreeMap.ceilingEntry方法,时间复杂度为O(nlgn),空间复杂度为O(n)

第五种方法使用两个数组,一个基于左端点排序,另外一个基于右端点排序。在对排序后的基于右端点排序后的数组遍历时,以另外一个数组中找到满足条件后,基于前一次的位置开始查找。时间复杂度为O(nlgn),空间复杂度为O(n)

具体代码参考:

https://github.com/wuli2496/OJ/tree/master/LeetCode/Find%20Right%20Interval

LeetCode Find Right Interval(二分)相关推荐

  1. LeetCode简单题之二分查找

    题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 1: 输入: n ...

  2. 5、leetcode剑指offer53 二分查找之0~n-1缺失的数字**

    leetcode剑指offer53 二分查找之0~n-1缺失的数字 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一个 ...

  3. 【细节实现题】LeetCode 57. Insert Interval

    LeetCode 57. Insert Interval Solution1:我的答案 算法很简单,不知道为何会被标记为hard题目 /*** Definition for an interval.* ...

  4. leetcode刷题笔记——二分查找

    leetcode刷题笔记--二分查找 目前完成的贪心相关的leetcode算法题序号: 中等:80,81 困难:4 来源:力扣(LeetCode) 链接:https://leetcode-cn.com ...

  5. LeetCode 1064. 不动点(二分查找)

    文章目录 1. 题目 2. 解题 2.1 暴力搜 2.2 二分查找 1. 题目 给定已经按升序排列.由不同整数组成的数组 A,返回满足 A[i] == i 的最小索引 i. 如果不存在这样的 i,返回 ...

  6. LeetCode刷题笔记 二分查找 局部有序

    二分查找的局部有序情况 ​ 我们已经知道二分查找是一种在有序数组中查找某一特定元素的查找算法. ​ 那如果一个数组不是整体有序,而是局部有序呢?这时我们就可以通过分治策略,我们在局部有序的区间内进行二 ...

  7. 【LeetCode】·【704. 二分查找】·【不成功】

    记一次失败的二分法查找 class Solution {public int search(int[] nums, int target) {if(nums.length == 0){return - ...

  8. LeetCode刷题之二分

    二分 二分是十分基础的一个算法,但是二分对于有序元素的查找应用效果十分优秀.由于最近在刷LeetCode,有二分的题目,感觉有不少感受,觉得以前对于二分也没有太重视,毕竟有对应的库函数可以使用,借此机 ...

  9. leetcode中关于使用二分查找算法思想deal的题型

    学习了二分查找的算法思想之后,再leetcode上写了一道常见的简单面试题,现在用博客记录一下我学习刷题的笔记! leetcode 题号69:Sqrt(x)(经典的面试题) 给你一个非负整数 x ,计 ...

最新文章

  1. crossdomain.xml配置错误导致登录不了
  2. 【MySQL】简单命令总结
  3. NanoPi NEO Air使用三:OverlayFS、CPU温度和频率、wifi、蓝牙、npi-config
  4. Goland设置Go相关环境
  5. T-SQL查询进阶--变量
  6. SAP Fiori ButtonRenderer
  7. td 内单选框不可用_在TD,我和曾经的老师变成了同事,也收获了最满意的“课外活动”...
  8. POJ_3262 Protecting the Flowers 【贪心】
  9. 前端学习(755):作用域案例
  10. paip.python错误解决2
  11. 时间工具类封装以及时间戳之间的相互转换
  12. 定个小目标——做一款自己的游戏
  13. iOS技术总结1——3D Touch技术
  14. 1 1 2 3 5 8 13 21 代码实现 java(斐波那契数列)
  15. CCF认证-201812-2-小明放学(C语言实现)
  16. Rust学习笔记(14)——struct、Option和Box组合应用实现单向链表之二
  17. 向世界问好,.NET 5 从 Fur 框架开始,v1.0.0.rc2 发布
  18. POJ 1006 生理周期
  19. Game boy模拟器(7):精灵
  20. SolidWorks直播课 | 3D参数化建模的实现方式

热门文章

  1. 【蓝桥杯】历届试题 地宫取宝
  2. 在多线程 Python 程序中实现多目标不同缩进格式的 logging
  3. SWFUpload上传文件组件,跨域上传文件
  4. python比较好的视频教程-哪里有免费的python3教程啊?最好是有例子的视频教学...
  5. python的工作方向-Python的就业的方向和前景
  6. python菜鸟基础教程-python基础菜鸟教程,Python的基础语法
  7. python100个免费实例-Python的100个练习实例免费下载
  8. python做啥用-python主要用于做什么
  9. python那么慢为什么还有人用-为什么大家都说python编程的效率速度慢呢?
  10. python2.7爬虫实例-用案例让你一文搞懂python网络爬虫