在既定时间做作业的学生人数

简介: 在既定时间做作业的学生人数

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间。

已知,第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。

请返回在查询时间 queryTime 时正在做作业的学生人数。形式上,返回能够使 queryTime 处于区间 [startTime[i], endTime[i]](含)的学生人数。

示例 1:

输入:startTime = [1,2,3], endTime = [3,2,7], queryTime = 4
输出:1
解释:一共有 3 名学生。
第一名学生在时间 1 开始写作业,并于时间 3 完成作业,在时间 4 没有处于做作业的状态。
第二名学生在时间 2 开始写作业,并于时间 2 完成作业,在时间 4 没有处于做作业的状态。
第三名学生在时间 3 开始写作业,预计于时间 7 完成作业,这是是唯一一名在时间 4 时正在做作业的学生。

示例 2:

输入:startTime = [4], endTime = [4], queryTime = 4
输出:1
解释:在查询时间只有一名学生在做作业。

示例 3:

输入:startTime = [4], endTime = [4], queryTime = 5
输出:0

示例 4:

输入:startTime = [1,1,1,1], endTime = [1,3,2,4], queryTime = 7
输出:0

示例 5:

输入:startTime = [9,8,7,6,5,4,3,2,1], endTime = [10,10,10,10,10,10,10,10,10], queryTime = 5
输出:5

提示:

  • startTime.length == endTime.length
  • 1 <= startTime.length <= 100
  • 1 <= startTime[i] <= endTime[i] <= 1000
  • 1 <= queryTime <= 1000

思路分析

首先我们应该先读一遍题目,读完题目后我们会发现,今天的这道题目好像有点简单。题目会给我们三个参数,分别是:

  • startTime

学生开始做作业的时间集

  • endTime

学生做完作业的时间集

  • queryTime

我们需要找到queryTime时正在做作业的学生人数

读完题目我们可以知道 starTime[i] ~ endTime[i] 代表第i位学生做作业的时间段,所以我们只需要遍历判断每一位学生做作业的时间段中是否包含queryTime即可。

AC代码

/**
 * @param {number[]} startTime
 * @param {number[]} endTime
 * @param {number} queryTime
 * @return {number}
 */
var busyStudent = function(startTime, endTime, queryTime) {
    let res = 0;
    for(let i = 0; i < startTime.length; i++){
        if(startTime[i] <= queryTime && endTime[i] >= queryTime){
            res++;
        }
    }
    return res;
};

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

目录
相关文章
|
8月前
|
JavaScript 测试技术
【动态规划】【精度】1883. 准时抵达会议现场的最小跳过休息次数
【动态规划】【精度】1883. 准时抵达会议现场的最小跳过休息次数
|
2月前
|
存储 Python
提升工作效率:获取任意月份的所有工作日
本文介绍了如何使用 Python 编写一个简单程序,以获取任意月份的所有工作日。通过 `datetime` 和 `calendar` 模块,程序能够准确地识别出每个月的周一至周五,帮助用户高效管理时间和任务。
88 6
|
Python
工序时间
工序时间是指在生产过程中,完成一个工序所需的时间。在制造业中,工序时间是一个重要的参数,它可以帮助企业了解生产效率、优化生产流程、制定生产计划等。
165 1
LeetCode 训练场:1450. 在既定时间做作业的学生人数
LeetCode 训练场:1450. 在既定时间做作业的学生人数
128 0
LeetCode 训练场:1450. 在既定时间做作业的学生人数
8瓶酒一瓶有毒,用人测试。每次测试结果8小时后才会得出,而你只有8个小时的时间。问最少需要(B)人测试?
8瓶酒一瓶有毒,用人测试。每次测试结果8小时后才会得出,而你只有8个小时的时间。问最少需要(B)人测试?
359 0
贪心算法——安排最大会议数量
贪心算法——安排最大会议数量
|
人工智能 自然语言处理 数据挖掘
阿里员工一天有26小时,怎么做到的?
阿里人一天的工作日常,是一场办公黑科技展,更是一部“时间减史”。 今天有幸来到号称“宇宙西厂”的阿里巴巴西溪园区逛逛,亲身体验下阿里人的一天,感受员工的数字化办公和生活。