当前位置:   article > 正文

leetcode 253 最少会议室问题

最少会议室问题
Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2,e2],...] (si < ei), find the minimum number of conference rooms required.


Given [[0, 30],[5, 10],[15, 20]], return 2.

Given [[7, 10],[2, 4]], return 1.

Given [[7, 10],[2, 7]], return 1.


解题思路:
算法的实现,遍历intervals中的每一项t,然后对于左边的坐标用[t[0], 1]表示(表示我们进入一个线段),右边的坐标用[t[1], -1]表示(表示我们退出了一个线段),然后将这些新得到的区间加入到一个tmp数组中,对这个数组排序,接着遍历这个数组,遍历的过程中累加我们建立的标记位(也就是前面建立的1和-1)记录累加的最大值即可。



注意:
1. 这道题使用Hashmap存储会导致无序的统计,不会得到正确结果
  1. public int minMeetingRooms(int[][] intervals) {
  2. TreeMap<Integer, Integer> map = new TreeMap<>();
  3. for(int[] interval: intervals) {
  4. int count = map.getOrDefault(interval[0], 0);
  5. map.put(interval[0], count+1);
  6. count = map.getOrDefault(interval[1], 0);
  7. map.put(interval[1], count-1);
  8. }
  9. int
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/182125
推荐阅读
相关标签
  

闽ICP备14008679号