题目大意
记录下每次的开始时间和结束时间,定义一开始的可参加活动数量和最后的结束时间,判断能否参加活动
考纲知识点
输入输出、分支结构、算术运算符、结构体基础、结构体排序、自定义函数、基础数据类型、变量的定义以及使用
数据范围
111 ≤≤≤ nnn ≤≤≤ 100010001000,000 <<< sss <<< eee <<< 10910^9109
解题思路
起始时间和终止时间可以记录在结构体 nodenodenode 中,记作起始时间 sss 和终止时间 eee
将结束时间从小到大进行排序
定义一个变量 lastlastlast 用来记录当前活动的结束时间,因为前面已经排序了,所以从 000 开始
定义一个变量 numnumnum 记录可以参加的活动数量,因为无论怎么样我们的第一个活动都是可以参加的,所以变量从 111 开始
同上,第一个无论怎样都可以参加,所以循环从 111 开始
如果下一次的开始时间大于上一次 lastlastlast 的结束时间,可参加的活动数量增加,lastlastlast 重新定义为当前活动的结束时间
参考程序
时间复杂度
O(n)O(n)O(n)(线性时间复杂度)
空间复杂度
O(1)O(1)O(1)(常数空间复杂度)