首页 > 试题广场 >

会议室问题

[编程题]会议室问题
  • 热度指数:2171 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目的宣讲。 给你每一个项目开始的时间和结束的时间(给你一个数 组,里面是一个个具体 的项目),你来安排宣讲的日程,要求会议室进行的宣讲的场次最多。 返回这个最多的宣讲场次。

输入描述:
第一行输入一个n代表有n场演讲(n <= 200)
下面n行需要输入两个整数 start、end代表会议开始时间和结束时间,其中(1<= start<=end <= 24)


输出描述:
输出一个整数,这个整数代表最多的宣讲场次
示例1

输入

3
1 10
11 20
10 11

输出

3
示例2

输入

3
6 12
7 8 
8 9

输出

2
import java.util.*;
public class Main {
    private static class Node{
        public int start;
        public int end;
        public Node(int start,int end){
            this.start=start;
            this.end=end;
        }     
    }
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        int lineCount=input.nextInt();
        if(lineCount<=0){
            System.out.println(0);
            return;
        }
        Node[] array=new Node[lineCount];
        for(int i=0;i<lineCount;i++){
            array[i]=new Node(input.nextInt(),input.nextInt());
        }
        Arrays.sort(array,(e1,e2)->e1.start-e2.start);
        Arrays.sort(array,(e1,e2)->e1.end-e2.end);
        
        int start=array[0].start;
        int count=0;
        for(Node node: array){
            if(start<=node.start){
                count++;
                start=node.end;
            }
        }
        System.out.println(count);
    }
}


发表于 2022-05-04 16:05:40 回复(0)

问题信息

上传者:小小
难度:
1条回答 4360浏览

热门推荐

通过挑战的用户

会议室问题