给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间。
已知,第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。
请返回在查询时间 queryTime 时正在做作业的学生人数。形式上,返回能够使 queryTime 处于区间 [startTime[i], endTime[i]](含)的学生人数。
这道题思路很简单,我们需要求某个学生在queryTime这个时间是否在写作业,判断方法有两种,第一种是只要startTime[i]<=queryTime<=endTime[i]即可,第二种是看差值,如果queryTime<endTime[i]并且endTime[i]-startTime[i]>endTime[i]-queryTime,那么第i个学生就符合要求。
代码:
class Solution {
public:
int busyStudent(vector<int>& startTime, vector<int>& endTime, int queryTime) {
int res = 0;
int l = startTime.size();//求vector向量长度
for(int i=0;i<l;i++){
if(startTime[i]==queryTime||endTime[i]==queryTime){res++;}//特殊情况,如果
//queryTime在第
//i个同学的时间边界上,
//那么第i个同学是符合要
//求的
else if(queryTime<endTime[i]&&endTime[i]-startTime[i]>endTime[i]-queryTime){res++;}
}
return res;
}
};
执行结果:通过
执行用时:0 ms, 在所有 C++ 提交中击败了100.00%的用户
内存消耗:10.6 MB, 在所有 C++ 提交中击败了36.00%的用户
通过测试用例:111 / 111