当前位置:   article > 正文

leetcode-会议室Ⅱ_leetcode安排会议室2

leetcode安排会议室2

该题是贪心算法的一个典型案例。

题目
给你一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i] = [starti, endi] ,为避免会议冲突,同时要考虑充分利用会议室资源,请你计算至少需要多少间会议室,才能满足这些会议安排。

示例 1:

输入:intervals = [[0,30],[5,10],[15,20]]
输出:2

核心算法思想如下:
1、对每个会议按照开始时间进行排序(肯定要先考虑开始时间早的会议)
2、初始化一个小根堆,用于存放会议的结束时间。用来告诉我们最近的一个会议什么时候结束
3、遍历每个会议,比较开始时间和堆顶元素,如果开始时间小于堆顶元素,说明会议有冲突,必须新开一个会议室,所以要将该会议的结束时间加入堆中。否则弹出堆顶元素,加入新的结束时间

堆内元素个数便是结果

class Solution {
   
    public int minMeetingRooms(int[][] intervals) {
   

    // Check for the base case. If there are no intervals, return 0
    if (intervals.length == 0) {
   
      return 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/182135?site
推荐阅读
相关标签
  

闽ICP备14008679号