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

जावा कोड

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

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

समय जटिलता

पर), चूंकि हम सभी इनपुट तत्वों को पार करते हैं। इस प्रकार समय की जटिलता रैखिक हो जाती है।

अंतरिक्ष जटिलता

ओ (1), क्योंकि हम गिनती को संग्रहीत करने के लिए केवल एक ही चर का उपयोग करते हैं।