Տվյալ ժամանակահատվածում տնային առաջադրանքներ կատարող ուսանողների քանակը Leetcode լուծում


Դժվարության մակարդակ Հեշտ
Դասավորություն

Տվյալ ժամին տնային առաջադրանք կատարող ուսանողների թիվը Leetcode Solution- ը խնդրում է մեզ գտնել տվյալ ժամանակահատվածում իրենց տնային աշխատանքի վրա աշխատող ուսանողների թիվը: Խնդիրը շատ պարզ է, վերնագիրն ինքն արդեն ի վիճակի է բացատրել ամբողջ խնդիրը: Մեզ տրվում է հարցման ժամանակ և այն ժամանակը, երբ աշակերտներն աշխատում են տնային առաջադրանքների վրա: Այսպիսով, օգտագործելով այս տեղեկատվությունը, մեզ խնդրում են գտնել այն ուսանողների թիվը, ովքեր հարցում են կատարում իրենց տնային առաջադրանքները հարցման ժամանակ: Այսպիսով, ինչպես միշտ, առաջ ուղղակիորեն նետվելով լուծման մեջ: Եկեք ստուգենք մի քանի օրինակներ:

Տվյալ ժամանակահատվածում տնային առաջադրանքներ կատարող ուսանողների քանակը Leetcode լուծում

startTime = [1,2,3], endTime = [3,2,7], queryTime = 4
1

Բացատրություն. Մենք ունենք երեք աշակերտ, որոնցից միայն 1 ուսանող է հարցնում տալիս իր տնային աշխատանքը: Քանի որ կա միայնակ մեկ երեխա, ով իր տնային աշխատանքը սկսում է ժամանակին = 3, և ավարտում է այն ժամանակին = 7:

startTime = [4], endTime = [4], queryTime = 4
1

Բացատրություն. Մենք ունենք մեկ ուսանող, ով սկսում է իր տնային աշխատանքը նույնը, ինչ հարցման ժամանակին: Այսպիսով ելքը նույնպես 1 է:

Տրված առաջադրանքներ կատարող ուսանողների թվին մոտեցում տրված ժամանակում Leetcode լուծում

Խնդիրը մեզ խնդրեց գտնել այն ուսանողների թիվը, ովքեր հարցման ժամանակ աշխատում են իրենց տնային աշխատանքի վրա: Մեզ տրամադրվում է ուսանողների տնային աշխատանքների մեկնարկի և ավարտի ժամանակները `վեկտորի կամ դասավորություն, Օգտագործելով այս տեղեկատվությունը, մենք փորձում ենք գտնել պահանջվող արժեքը:

Մենք կարող ենք հեշտությամբ լուծել խնդիրը ՝ պարզապես տրորված տեղեկատվությունը թերթելով: Տրված տեղեկատվությունը տնային գործունեության սկզբի և ավարտի ժամանակն է: Այսպիսով, մենք ստուգում ենք, արդյոք հարցման ժամանակը ընկած է տնային գործունեության սկզբի և ավարտի ժամանակի միջև: Այս ուսանողների հաշվարկը պահելը մեզ տալիս է արդյունքի պատասխանը:

Տվյալ ժամանակահատվածում տնային առաջադրանք կատարող ուսանողների թվաքանակի համարը Leetcode լուծում

C ++ ծածկագիր

#include <bits/stdc++.h>
using namespace std;

int busyStudent(vector<int> startTime, vector<int> endTime, int queryTime) {
    int n = startTime.size();
    int ans = 0;
    for(int i=0;i<n;i++)
        ans += ((startTime[i] <= queryTime && queryTime <= endTime[i]) ? 1 : 0);
    return ans;
}

int main(){
    vector<int> startTime = {4};
    vector<int> endTime = {4};
    int queryTime = 4;
    cout<<(busyStudent(startTime, endTime, queryTime));
}
1

Java կոդ

import java.util.*;
import java.lang.*;
import java.io.*;

class Main
{
  public static int busyStudent(int[] startTime, int[] endTime, int queryTime) {
        int n = startTime.length;
        int ans = 0;
        for(int i=0;i<n;i++)
            ans += ((startTime[i] <= queryTime && queryTime <= endTime[i]) ? 1 : 0);
        return ans;
    }
    
  public static void main (String[] args) throws java.lang.Exception
  {
    int[] startTime = {4};
    int[] endTime = {4};
    int queryTime = 4;
    System.out.println(busyStudent(startTime, endTime, queryTime));
  }
}
1

Բարդության վերլուծություն

Timeամանակի բարդություն

ՎՐԱ), քանի որ մենք անցնում ենք մուտքի բոլոր տարրերը: Այսպիսով, ժամանակի բարդությունը գծային է ստացվում:

Տիեզերական բարդություն

O (1), քանի որ հաշվարկը պահելու համար մենք օգտագործում ենք միայն մեկ փոփոխական: