# 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; } } ```