博客
关于我
leetcode436. 寻找右区间(二分法)
阅读量:258 次
发布时间:2019-03-01

本文共 886 字,大约阅读时间需要 2 分钟。

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

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

注意:

你可以假设区间的终点总是大于它的起始点。

你可以假定这些区间都不具有相同的起始点。
示例 1:

输入: [ [1,2] ]

输出: [-1]

解释:集合中只有一个区间,所以输出-1。

代码

class Solution {       public int[] findRightInterval(int[][] intervals) {           int n=intervals.length;        int[][] in=new int[n][2];//记录下集合的起点的位置        int[] res=new int[n];        for(int i=0;i
() { //将起点排序 @Override public int compare(int[] o1, int[] o2) { return o1[0]-o2[0]; } }); for(int i=0;i
=intervals[i][1]) r=mid-1; else l=mid+1; } if(l==0||l==n) res[i]=-1;//找不到 else res[i]=in[l][1]; } return res; }}

转载地址:http://ywbv.baihongyu.com/

你可能感兴趣的文章
Netty基础—1.网络编程基础二
查看>>
Netty基础—2.网络编程基础四
查看>>
Netty基础—3.基础网络协议二
查看>>
Netty基础—7.Netty实现消息推送服务一
查看>>
Netty基础—7.Netty实现消息推送服务二
查看>>
Netty基础—8.Netty实现私有协议栈二
查看>>
Netty多线程 和 Redis6 多线程对比
查看>>
Netty学习总结(2)——Netty的高性能架构之道
查看>>
Netty学习总结(3)——Netty百万级推送服务
查看>>
Netty学习总结(5)——Netty之TCP粘包/拆包问题的解决之道
查看>>
Netty学习总结(6)——Netty使用注意事项
查看>>
Netty实现Http服务器
查看>>
Netty客户端断线重连实现及问题思考
查看>>
Netty工作笔记0001---Netty介绍
查看>>
Netty工作笔记0003---IO模型-BIO-Java原生IO
查看>>
Netty工作笔记0006---NIO的Buffer说明
查看>>
Netty工作笔记0007---NIO的三大核心组件关系
查看>>
Netty工作笔记0008---NIO的Buffer的机制及子类
查看>>
Netty工作笔记0009---Channel基本介绍
查看>>
Netty工作笔记0011---Channel应用案例2
查看>>