दिइएको समयको लेटकोड समाधानमा होमवर्क गरिरहेका विद्यार्थीहरूको संख्या


कठिनाई तह सजिलो
एरे

दिईएको समय लाईटकोड समाधानमा होमवर्क गर्ने विद्यार्थीहरूको समस्याले हामीलाई एक निश्चित समयमा उनीहरूको गृहकार्यमा काम गर्ने विद्यार्थीहरूको संख्या फेला पार्न अनुरोध गर्दछ। समस्या धेरै स्पष्ट छ, शीर्षक आफैं पहिले नै सम्पूर्ण समस्या व्याख्या गर्न सक्षम छ। हामीलाई एउटा क्वेरी समय र विद्यार्थीहरू उनीहरूको गृहकार्यमा काम गर्ने समय दिइन्छ। त्यसोभए, यस जानकारी प्रयोग गरेर हामीलाई प्रश्नको समयमा उनीहरूको गृहकार्य गरिरहेका विद्यार्थीहरूको संख्या फेला पार्न भनियो। त्यसोभए, सामान्यमा सिधा समाधानमा जम्प गर्नु अघि। हामी केही उदाहरणहरू जाँचौं।

दिइएको समयको लेटकोड समाधानमा होमवर्क गरिरहेका विद्यार्थीहरूको संख्या

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

स्पष्टीकरण: हामीसँग तीन विद्यार्थी छन् जसमध्ये १ विद्यार्थी मात्र उनको / उनको गृहकार्यमा क्वेरी समयमा काम गर्दछन्। किनभने त्यहाँ एकल बच्चा मात्र हो गृहकार्यलाई समय = at मा सुरू गरेर, र समय 1 मा पूरा गर्दै।

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

स्पष्टीकरण: हामीसँग एकल छात्र छ जसले क्वेरी समय जस्तो उस्तै उसको गृहकार्य सुरु गर्दछ। यसरी आउटपुट १ पनि हुन्छ।

दिईएको समयको लेटकोड समाधानमा होमवर्क गर्ने विद्यार्थीहरूको संख्याका लागि दृष्टिकोण

समस्याले प्रश्नहरूको समयमा उनीहरूको गृहकार्यमा काम गरिरहेका विद्यार्थीहरूको संख्या पत्ता लगाउन हामीलाई सोध्यो। हामीले विद्यार्थीको गृहकार्य गतिविधिहरूको सुरूवात र अन्त्य समय भेक्टरको रूपमा प्रदान गरिन्छ वा array। यो जानकारी प्रयोग गरेर हामी आवश्यक मूल्य फेला पार्न प्रयास गर्दछौं।

हामी सजिलै समस्यालाई समाधान गर्न सक्छौं केवल दिइएको जानकारीलाई ट्र्याभरिंग गरेर। दिइएको जानकारी गृहकार्य गतिविधिको सुरूवात र अन्त समय हो। यसैले हामी जाँच गर्छौं कि क्वेरी समय गृहकार्य गतिविधि को सुरूवात र अन्त समय बीच छ। यी विद्यार्थीहरूको गन्ती राख्दा हामीलाई नतिजा उत्तर दिन्छ।

दिईएको समय 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

जावा कोड

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

जटिलता विश्लेषण

समय जटिलता

O (N), किनकि हामी सबै इनपुट तत्वहरू पार गर्दछौं। यस प्रकार समय जटिलता रैखिक हुन बाहिर आउँछ।

ठाउँ जटिलता

O (१), किनकि हामी गणनालाई भण्डारण गर्न केवल एक मात्र चर प्रयोग गर्दछौं।