zoukankan      html  css  js  c++  java
  • 803. 区间合并(贪心)

    给定 nn 个区间 [li,ri][li,ri],要求合并所有有交集的区间。

    注意如果在端点处相交,也算有交集。

    输出合并完成后的区间个数。

    例如:[1,3]和[2,6]可以合并为一个区间[1,6]。

    输入格式

    第一行包含整数n。

    接下来n行,每行包含两个整数 l 和 r。

    输出格式

    共一行,包含一个整数,表示合并区间完成后的区间个数。

    数据范围

    1n1000001≤n≤100000,
    109liri109−109≤li≤ri≤109

    输入样例:

    5
    1 2
    2 4
    5 6
    7 8
    7 9
    

    输出样例:

    3

    思路:先按区间左端点排序;下一个区间和上一个区间有三种情况,在区间里,有交集,无交集,如下图

                 

       代码:

    import java.util.*;
    class node implements Comparable<node>{
        int l;
        int r;
          @Override
        public int compareTo(node o) {
               return this.l-o.l;
        }
    }
    public class Main{
            static final int max=100005;
            static node p[]=new node[max];
            public static void main(String[] args) {
                   Scanner scan=new Scanner(System.in);
                   int n=scan.nextInt();
                   for(int i=0;i<n;i++){
                          p[i]=new node();
                          p[i].l=scan.nextInt();
                          p[i].r=scan.nextInt();
                   }
                   Arrays.sort(p,0,n);
                   int res=1,end=p[0].r;
                   for(int i=1;i<n;i++){
                        if(p[i].l<=end) end=Math.max(end, p[i].r);
                        else {
                            res++;
                            end=p[i].r;
                        }
                   }
                   System.out.println(res);
            }
    }
  • 相关阅读:
    简单的NHibernate helper类,支持同一事务的批量数据处理
    外部唯一窗体
    Nhibernate常见的错误
    NHB下载地址
    oracle jdbc连接
    linux 中国发行版
    转:pl/sql develop的使用
    Oracle Database 10g Release 2 JDBC Drivers
    转:Setting up a Msysgit Server with copSSH on Windows
    oracle基础学习
  • 原文地址:https://www.cnblogs.com/qdu-lkc/p/12208768.html
Copyright © 2011-2022 走看看