Müəyyən bir vaxtda ev tapşırığını yerinə yetirən tələbə sayı, elektron poçt həlli

Çətinlik səviyyəsi Asan
alqoritmlər Geyim kodlaşdırma müsahibə müsahibə hazırlığı LeetCode LeetCodeSolutionsBaxılıb 67

Sistem dizaynı ilə bağlı müsahibə sualları o qədər açıq ola bilər ki, düzgün hazırlaşmağı bilmək çox çətindir. İndi satın aldıqdan sonra Amazon, Microsoft və Adobe-nin dizayn dövrlərini sındıra bilirəm Bu kitabı. Gündəlik bir yenidən nəzərdən keçirin dizayn sualı və söz verirəm ki, dizayn dövrünü sındıra bilərsiniz.

Müəyyən bir vaxtda ev tapşırığını yerinə yetirən tələbə sayı problemi Leetcode Həlli, müəyyən bir zamanda ev tapşırığı üzərində işləyən şagird sayını tapmağımızı xahiş edir. Problem çox aydındır, başlıq özü artıq bütün problemi izah edə bilir. Bizə sorğu müddəti və şagirdlərin ev tapşırıqları üzərində işlədikləri vaxt verilir. Beləliklə, bu məlumatlardan istifadə edərək sorğu zamanı ev tapşırıqlarını yerinə yetirən tələbələrin sayını tapmağımızı xahiş edirik. Beləliklə, hər zamanki kimi birbaşa həll yolu atlamadan əvvəl. Bir neçə nümunəni nəzərdən keçirək.

Müəyyən bir vaxtda ev tapşırığını yerinə yetirən tələbə sayı, elektron poçt həlliPin

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

İzahat: Üç tələbəmiz var, onlardan yalnız 1 tələbə sorğu zamanı ev tapşırığı üzərində işləyir. Çünki ev işinə = 3-də başlayan və = 7-də yerinə yetirən tək bir uşaq var.

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

İzahat: Ev tapşırıqlarını sorğu vaxtı ilə eyni vaxtda başlayan tək bir tələbəmiz var. Beləliklə çıxış da 1-dir.

Müəyyən bir vaxtda Leetcode həllində ev tapşırığını yerinə yetirən tələbə sayına yanaşma

Problem sorğu vaxtı ev tapşırıqları üzərində işləyən şagirdlərin sayını tapmağımızı istədi. Tələbələrin ev tapşırığı fəaliyyətinin başlama və bitmə vaxtları bir vektor və ya şəklində verilir array. Bu məlumatdan istifadə edərək lazımi dəyəri tapmağa çalışırıq.

Sadəcə verilən məlumatları keçərək problemi asanlıqla həll edə bilərik. Verilən məlumatlar ev tapşırığı fəaliyyətinin başlanğıc və bitmə vaxtıdır. Beləliklə sorğu vaxtının ev tapşırığı fəaliyyətinin başlama və bitmə vaxtı arasında olub olmadığını yoxlayırıq. Bu tələbələrin sayını saxlamaq bizə nəticəli cavabı verir.

Müəyyən olunmuş vaxtda ev tapşırığı yerinə yetirən tələbə sayı üçün kod vərəqəsi həlli

C ++ kodu

#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 kodu

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

Mürəkkəblik təhlili

Zamanın mürəkkəbliyi

O (N), bütün giriş elementlərini keçdiyimiz üçün. Beləliklə zaman mürəkkəbliyi xətti olur.

Kosmik Mürəkkəblik

O (1), sayını saxlamaq üçün yalnız bir dəyişən istifadə edirik.

Crack Sistemi Dizayn Müsahibələri
Translate »
1