zoukankan      html  css  js  c++  java
  • LeetCode 435 无重叠区间

    LeetCode 435 无重叠区间

    问题描述:
    给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。
    注意:

    • 可以认为区间的终点总是大于它的起点。
    • 区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。

    贪心思想

    执行用时:5 ms, 在所有 Java 提交中击败了35.16%的用户
    内存消耗:40 MB, 在所有 Java 提交中击败了20.16%的用户

    class Solution {
        public int eraseOverlapIntervals(int[][] intervals) {
            if(intervals==null || intervals.length==0 || intervals[0].length==0 || intervals.length==1) {
                return 0;
            }
            /*按照区间右边界升序排序*/
            Arrays.sort(intervals, new Comparator<int[]>(){
                public int compare(int[] o1, int[] o2) {
                    return o1[1] - o2[1];
                }
            });
            /*贪心思想:对于每次选择,总是保证能够获得最大不重叠区间数量*/
            int curr = 0, next = 1;
            int count = 0;
            while(next<intervals.length) {
                /*下一区间next 与 当前区间curr 或 当前区间之前区间 重叠,而 当前区间及之前区间 均不重叠*/
                /*因此要获得最大不重叠区间数量,则需要将下一区间next去除(结果count+1)*/
                if(intervals[next][0]<intervals[curr][1]) {
                    count++;
                }
                else {
                    curr = next;
                }
                next++;
            }
            return count;
        }
    }
    
  • 相关阅读:
    横竖屏切换
    org.apache.harmony.xml.ExpatParser$ParseException: At line 1, column 0: unknown encoding
    @Value() 使用方法
    调用第三方超时处理
    spring 配置注解定时器quartz01
    tomcat:PermGen space
    06-图3 六度空间 (30分)
    06-图2 Saving James Bond
    06-图1 列出连通集 (25分)
    05-树9 Huffman Codes (30分)
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13637482.html
Copyright © 2011-2022 走看看