1353. 最多可以参加的会议数目

给你一个数组 events,其中 events[i] = [startDayi, endDayi] ,表示会议 i 开始于 startDayi ,结束于 endDayi 。

你可以在满足 startDayi <= d <= endDayi 中的任意一天 d 参加会议 i 。注意,一天只能参加一个会议。

请你返回你可以参加的 最大 会议数目。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-number-of-events-that-can-be-attended
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

import java.util.*;

class Solution {

    public int maxEvents(int[][] events) {
        Arrays.sort(events, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                return Integer.compare(o1[0], o2[0]);
            }
        });
        int ans = 0;
        PriorityQueue<Integer> queue = new PriorityQueue<>();
        int index = 0;
        int day = 1;
        while (index < events.length || !queue.isEmpty()) {
            while (index < events.length && events[index][0] == day) {
                queue.offer(events[index++][1]);
            }
            while (!queue.isEmpty() && queue.peek() < day) {
                queue.poll();
            }
            if (!queue.isEmpty()) {
                ans++;
                queue.poll();
            }
            day++;
        }
        return ans;
    }
}


上一篇:Shodan搜索引擎使用教程


下一篇:SHODAN