• 【每日一题】436. 寻找右区间


    436. 寻找右区间 - 力扣(LeetCode)

    给你一个区间数组 intervals ,其中 intervals[i] = [starti, endi] ,且每个 starti 都 不同 。

    区间 i 的 右侧区间 可以记作区间 j ,并满足 startj >= endi ,且 startj 最小化 。注意 i 可能等于 j 。

    返回一个由每个区间 i 的 右侧区间 在 intervals 中对应下标组成的数组。如果某个区间 i 不存在对应的 右侧区间 ,则下标 i 处的值设为 -1 。

     

    示例 1:

    输入:intervals = [[1,2]]
    输出:[-1]
    解释:集合中只有一个区间,所以输出-1。
    

    示例 2:

    输入:intervals = [[3,4],[2,3],[1,2]]
    输出:[-1,0,1]
    解释:对于 [3,4] ,没有满足条件的“右侧”区间。
    对于 [2,3] ,区间[3,4]具有最小的“右”起点;
    对于 [1,2] ,区间[2,3]具有最小的“右”起点。
    

    示例 3:

    输入:intervals = [[1,4],[2,3],[3,4]]
    输出:[-1,2,-1]
    解释:对于区间 [1,4] 和 [3,4] ,没有满足条件的“右侧”区间。
    对于 [2,3] ,区间 [3,4] 有最小的“右”起点。
    

    提示:

    • 1 <= intervals.length <= 2 * 104
    • intervals[i].length == 2
    • -106 <= starti <= endi <= 106
    • 每个间隔的起点都 不相同
    1. class Solution {
    2. public int[] findRightInterval(int[][] intervals) {
    3. int len = intervals.length;
    4. ArrayList arr = new ArrayList();
    5. for(int i = 0 ; i < len ; i++ ){
    6. int diff = 65536;
    7. int index = -1;
    8. for(int j = 0; j < len ; j++) {
    9. int tmp = intervals[j][0] - intervals[i][1];
    10. if(tmp >= 0 && tmp
    11. index = j;
    12. diff = tmp;
    13. }
    14. }
    15. arr.add(index);
    16. }
    17. len = arr.size();
    18. int[] ans = new int[len];
    19. for(int i = 0 ; i < len ; i++) {
    20. ans[i] = arr.get(i);
    21. }
    22. return ans;
    23. }
    24. }

             每日一题,今天是中等题。今天直接采用暴力解法了,题目没有要求。

            这题主要难在题目理解。题目所谓的startj要大于endi实际上就是说,每一个区间都取右边的数,之后和左边的数进行对比,如果能够连成一个由小到大的区间就行了。也就是说【0,1】只要能有一组的左边界可以大于等于1,就是答案之一,但是要寻找最小的。那最简单的方法就是暴力求解了。直接两个循环,两个参数,一个记录下标,一个记录差值。由于【4,4】这种可以算是自己自成,所以i==j的时候也不能跳过。

            不过暴力的结果就是,实践复杂度和空间复杂度会很高,但是在没有要求的情况下是可以使用的,实际中能过就行。后续再去考虑优化的问题。(当然,工程中不建议)。

            

  • 相关阅读:
    微信小程序:喝酒娱乐小游戏助力神器
    VBA技术资料MF58:VBA_测试点是否在多边形中
    《MySQL 数据库 (一)》
    Java学习 --- 设计模式的七大原则的迪米特法则(最小知道原则)
    FFmpeg 参数
    4年博主写博客的折腾之路
    【C++】不是用new生成的对象调用析构函数
    MySQL 慢查询
    华为AP升级操作记录
    VxWorks环境搭建与学习
  • 原文地址:https://blog.csdn.net/C_Ryson/article/details/132927955