当前位置:   article > 正文

LeetCode-252:会议室安排_会议室安排问题 leetcode

会议室安排问题 leetcode

贪心策略

一些项目要占用一个会议室宣讲, 会议室不能同时容纳两个项目的宣讲。 给你每一个项目开始的时间和结束的时间(给你一个数组, 里面 是一个个具体的项目), 你来安排宣讲的日程, 要求会议室进行 的宣讲的场次最多。 返回这个最多的宣讲场次。
 

  1. 会议最早开始的先安排,不可,可能出现很早开始但是持续时间久的会议。
  2. 会议持续时间短的先安排,不可,持续时间短,但是可能会影响到另外的两场会议,如下面情况:【A B C】,B的会议时间短,但是,A的结束时间晚于B的开始时间,C的开始时间早于B的结束时间。选A,C会比选B更优。
  3. 会议早开始的先安排。可!
  1. class Node{
  2. int start;
  3. int end;
  4. public Node(int start,int end){
  5. this.start=start;
  6. this.end=end;
  7. }
  8. }
  9. class EarlyEndTimeComparator implements Comparator<Node>{
  10. public int compare(Node node1,Node node2{
  11. return node1.end-node2.end;
  12. }
  13. }
  14. public int getResult(int[] startTimes,int[] endTimes,int startTime){
  15. Node[] nodes=new Node[startTimes.size()];
  16. for(int i=0;i<startTimes.length;i++){
  17. nodes[i]=new Node(startTimes[i],endTimes[i]);
  18. }
  19. Arrays.sort(nodes,new EarlyEndComparator()); // 排序,按结束时间短的在前面
  20. int result=0;
  21. for(int i=0;i<nodes.size();i++){
  22. if(node[i].start>=startTime){
  23. result++;
  24. startTime=node[i].end;
  25. }
  26. }
  27. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/182130?site
推荐阅读
相关标签
  

闽ICP备14008679号