دیئے گئے ٹائم لیٹ کوڈ حل میں ہوم ورک کرنے والے طلبا کی تعداد


مشکل سطح آرام سے
لڑی

دیئے گئے وقت لیٹکوڈ حل میں ہوم ورک کرنے والے طلبا کی دشواری ہم سے ایک مخصوص وقت پر اپنے ہوم ورک پر کام کرنے والے طلبا کی تعداد معلوم کرنے کے لئے کہتی ہے۔ مسئلہ بالکل واضح ہے ، عنوان خود ہی پہلے ہی پورے مسئلے کی وضاحت کرنے کے قابل ہے۔ ہمیں طلباء کو اپنے ہوم ورک پر کام کرنے کا وقت اور وقت دیا جاتا ہے۔ لہذا ، اس معلومات کا استعمال کرتے ہوئے ہم سے طلبہ کی تعداد معلوم کرنے کے لئے کہا گیا ہے جو سوال کے وقت کے دوران اپنا ہوم ورک کر رہے ہیں۔ لہذا ، معمول کی طرح براہ راست حل میں کودنے سے پہلے۔ آئیے کچھ مثالوں کی جانچ کرتے ہیں۔

دیئے گئے ٹائم لیٹ کوڈ حل میں ہوم ورک کرنے والے طلبا کی تعداد

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

وضاحت: ہمارے پاس تین طلباء ہیں جن میں سے صرف ایک طالب علم سوال کے وقت کے دوران اپنے ہوم ورک پر کام کرتی ہے۔ کیونکہ صرف ایک ہی بچہ اپنا گھریلو کام وقت = 1 پر شروع کرنا ، اور اسے وقت = 3 پر مکمل کرنا ہے۔

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

وضاحت: ہمارے پاس ایک واحد طالب علم ہے جو اپنا ہوم ورک اسی وقت شروع کرتا ہے جیسا کہ استفسار وقت ہوتا ہے۔ اس طرح آؤٹ پٹ بھی 1 ہے۔

دیئے گئے ٹائم لیٹ کوڈ حل میں ہوم ورک کرنے والے طلبا کی تعداد تک رسائی

مسئلہ نے ہم سے طلبہ کی تعداد معلوم کرنے کے لئے کہا جو سوال کے وقت کے دوران اپنے ہوم ورک پر کام کر رہے ہیں۔ ہمیں طلباء کے ہوم ورک کی سرگرمیوں کا آغاز اور اختتامی وقت ویکٹر کی شکل میں فراہم کیا جاتا ہے یا صف. اس معلومات کا استعمال کرتے ہوئے ، ہم مطلوبہ قیمت تلاش کرنے کی کوشش کرتے ہیں۔

ہم دی گئی معلومات کو عبور کرکے ہی آسانی سے اس مسئلے کو حل کرسکتے ہیں۔ دی گئی معلومات ہوم ورک کی سرگرمی کا آغاز اور اختتامی وقت ہے۔ لہذا ہم جانچتے ہیں کہ ہوم ورک کی سرگرمی کے آغاز اور اختتامی وقت کے درمیان استفسار کا وقت موجود ہے یا نہیں۔ ان طلباء کی گنتی برقرار رکھنے سے ہمیں نتیجہ خیز جواب ملتا ہے۔

دیئے گئے ٹائم لیٹ کوڈ حل میں ہوم ورک کرنے والے طلبا کی تعداد کے لئے کوڈ

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 (1) ، کیونکہ ہم گنتی کو ذخیرہ کرنے کے لئے صرف ایک ہی متغیر استعمال کرتے ہیں۔