# Leetcode 1450. Number of Students Doing Homework at a Given Time 練習
> Difficulty : `Medium`
> `Java` `演算法Algorithm`
> 撰寫人[name=KVJK_2125] [time=Fri, Mar 29, 2024 22:30]
## 題目
### 說明 Description
Given two integer arrays `startTime` and `endTime` and given an integer `queryTime`.
The i^th^ student started doing their homework at the time `startTime[i]` and finished it at time `endTime[i]`.
Return the number of students doing their homework at time queryTime. More formally, return the number of students where `queryTime` lays in the interval `[startTime[i], endTime[i]]` inclusive.
翻譯:
給兩個整數陣列 startTime (開始時間)和 endTime (結束時間),並給一個整數 queryTime。
第 i 位學生在 startTime[i] 時開始寫作業,在 endTime[i] 時完成作業。
回傳在 queryTime 正在做作業的學生人數。更正式的說,回傳能夠使 queryTime 位於區間 [startTime[i], endTime[i]] 內的學生人數。
### 範例 Example
Example 1:
>Input: startTime = [1,2,3], endTime = [3,2,7], queryTime = 4
Output: 1
>Explanation: We have 3 students where:
The first student started doing homework at time 1 and finished at time 3 and wasn't doing anything at time 4.
The second student started doing homework at time 2 and finished at time 2 and also wasn't doing anything at time 4.
The third student started doing homework at time 3 and finished at time 7 and was the only student doing homework at time 4.
Example 2:
>Input: startTime = [4], endTime = [4], queryTime = 4
Output: 1
>Explanation: The only student was doing their homework at the queryTime.
### 限制條件 Constraints
- `startTime.length == endTime.length`
- `1 <= startTime.length <= 100`
- `1 <= startTime[i] <= endTime[i] <= 1000`
- `1 <= queryTime <= 1000`
## 解題
### 思路 Intuition/Approach
- Step1.<br> 建立一個整數變數`int ans = startTime.length`,設定成和開始時間一樣多。<br>
- Step2.<br> 判斷從`startTime`到`endTime`中,必須經過`queryTime`。<br>因此,在`startTime > queryTime`或`endTime < queryTime`時,均不經過`queryTime`,故`ans--`。維持直到計算結束,回傳`ans`。
### 程式碼 Code(加註解)
```clink=
class Solution {
public int busyStudent(int[] startTime, int[] endTime, int queryTime) {
//建立一個整數變數,設定為多少個startTime就多少
int ans = startTime.length;
//以startTime.length作為迴圈條件
for(int i = 0; i < startTime.length; i ++){
//確定是不是沒有經過queryTime
if(startTime[i] > queryTime || endTime[i] < queryTime)
//沒有經過的話,將ans--
ans--;
}
//回傳ans
return ans;
}
}
```