import java.util.Arrays;
import java.util.Scanner;
class node implements Comparable
{
public int start;
public int end;
public node(int x,int y)
{
this.start=x;
this.end=y;
}
public int compareTo(Object obj)
{
if(obj instanceof node)
{
node bNode=(node)obj;
if(this.end>bNode.end)
return 1;
else
{
return -1;
}
}
return 0;
}
}
public class Main {
/**
* @param args
*/
static node nodes[];
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
int time=scanner.nextInt();
while(time--!=0)
{
int number=scanner.nextInt();
nodes=new node[number];
for(int i=0;i<number;i++)
{
int start,end;
start=scanner.nextInt();
end=scanner.nextInt();
nodes[i]=new node(start, end);
}
Arrays.sort(nodes);
int count=1;
for(int j=1;j<number;j++)
{
if(nodes[0].end<nodes[j].start)
{
count++;
nodes[0].end=nodes[j].end;
}
}
System.out.println(count);
}
}
}
优先队列:
import java.util.PriorityQueue;
import java.util.Scanner;
class activity implements Comparable<activity>{
int stime,etime;
public activity(int stime, int etime) {
this.stime = stime;
this.etime = etime;
}
public int compareTo(activity atv) {
if(atv instanceof activity)
{
if(this.etime>atv.etime)
return 1;
else return -1;
}
return -1;
}
}
public class Main {
static activity [] atvs;
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int times=scan.nextInt();
PriorityQueue<activity> pQueue=new PriorityQueue<activity>();
while(times--!=0)
{
int activities=scan.nextInt();
atvs=new activity[activities];
for(int i=0;i<activities;i++)
{
atvs[i]=new activity(scan.nextInt(), scan.nextInt());
pQueue.add(atvs[i]);
}
int number=1;
int top=pQueue.poll().etime;
for(int i=1;i<activities;i++)
{
if(top<pQueue.peek().stime)
{
top=pQueue.peek().etime;
number++;
}
pQueue.poll();
}
pQueue.clear();
System.out.println(number);
}
}
}