公司给了老杜去“北京网络安全大会”学习的机会,主办方在国家会议中心一天中安排了几十个分会场在同时举行各种主题会议,会场人声鼎沸。 老杜的策略是:参加尽可能多的会议,于是老杜拿到了当天所有会议的日程表,表上是每个会议的开始结束时间段[starttime,endtime],假设时间都为整数,请问老杜这天最多能参加几个会议?-笔试面试资料

这是qklbishe.com第19939 篇笔试面试资料
提供答案分析,通过本文《公司给了老杜去“北京网络安全大会”学习的机会,主办方在国家会议中心一天中安排了几十个分会场在同时举行各种主题会议,会场人声鼎沸。 老杜的策略是:参加尽可能多的会议,于是老杜拿到了当天所有会议的日程表,表上是每个会议的开始结束时间段[starttime,endtime],假设时间都为整数,请问老杜这天最多能参加几个会议?-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

公司给了老杜去“北京网络安全大会”学习的机会,主办方在国家会议中心一天中安排了几十个分会场在同时举行各种主题会议,会场人声鼎沸。
老杜的策略是:参加尽可能多的会议,于是老杜拿到了当天所有会议的日程表,表上是每个会议的开始结束时间段[starttime,endtime],假设时间都为整数,请问老杜这天最多能参加几个会议?
公司给了老杜去“北京网络安全大会”学习的机会,主办方在国家会议中心一天中安排了几十个分会场在同时举行各种主题会议,会场人声鼎沸。    老杜的策略是:参加尽可能多的会议,于是老杜拿到了当天所有会议的日程表,表上是每个会议的开始结束时间段[starttime,endtime],假设时间都为整数,请问老杜这天最多能参加几个会议? 零葬

贪心

先按照会议的结束时间排序,然后遍历会议数组,每次选择能参加的会议。
import java.util.*;   public class Solution {     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可      *      *       * @param times int整型二维数组       * @return int整型      */     public int AttendMeetings (int
[][] times) {         // write code here         Arrays.sort(times, (a, b) -> a
[1] - b
[1]);         int count = 0, end = 0;         for(int i = 0; i < times.length; i++){             if(end <= times
[i][0]){                 count++;                 end = times
[i][1];     // 时间点往后推             }         }         return count;     } }

复杂度分析

排序时间复杂度O(nlogn),遍历时间复杂度O(n),因此算法的瓶颈在于排序,整体时间复杂度为O(nlogn)。遍历过程仅使用了有限几个变量,因此空间复杂度为O(1),但由于是对引用类型排序,因此内部使用归并排序,空间复杂度为O(n),算法整体的空间复杂度为O(n)。

2022-01-08 23:02:30 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 公司给了老杜去“北京网络安全大会”学习的机会,主办方在国家会议中心一天中安排了几十个分会场在同时举行各种主题会议,会场人声鼎沸。 老杜的策略是:参加尽可能多的会议,于是老杜拿到了当天所有会议的日程表,表上是每个会议的开始结束时间段[starttime,endtime],假设时间都为整数,请问老杜这天最多能参加几个会议?-笔试面试资料

提供最优质的资源集合

立即查看 了解详情