سست ترين مکيه ليٽ ڪوڊ حل  


تڪليف جي سطح آسان
بار بار پڇڻ ۾ Amazon
algorithms ڪيريو ڪوڊنگ انٽرويو انٽرويو جي تياري ليٽ ڪوڊ LeetCodeSolutions

مسئلو سستي ترين ليٽ ڪوڊ حل اسان کي چٽڻ واري ترتيب سان مهيا ڪري ٿو جيڪا دٻايو وئي آهي. اسان پڻ هڪ ڏني وئي آهي صف يا ویکرن جي ڀيٽ ۾ اهي چيڪ جاري ڪيا ويا آهن. ڪنارن جو تسلسل تار جي صورت ۾ ڏنو ويندو آهي. تنهن ڪري ، مسئلو اسان کان پڇيو ته سستي شي کي ڳوليو ، جنهن تي عمل ڪرڻ جو تمام ڊگهو وقت وٺندو آهي. وقت يا چاٻي واري دٻي کي ادا ڪرڻ لاءِ چاٻي موجوده چاٻي ۽ پوئين چاٻي لاءِ ڇڏيل وقت جو فرق آهي. ان صورت ۾ اسان وٽ ٻه يا وڌيڪ چئلينج اچن ٿيون جيڪي هڪ ئي وقت لڳن ٿيون. تنهن ڪري اسين موٽايو موٽون جيڪا لئڪسڪوگرافڪ طور تي سڀني کان وڏي آهي. حل جي کوٽائي ۾ جڙڻ کان پهرين ، اچو ته پهريان ڪجھ مثالن تي نظر وجهون.

سست ترين مکيه ليٽ ڪوڊ حلپن

releaseTimes = [9,29,49,50], keysPressed = "cbcd"
"c"

وضاحت: هر چابين طرفان ڪ Theيل وقت جو وقت 9 ، 20 ، 20 ، 1. جاري ٿيل وقت بالترتیب ڪيز ، ب ، سي ۽ ڊي جي لاءِ آهن. کان وٺي رليز جا وقت ڪي ب ۽ سي لاءِ ساڳيا آهن. اسان لئڪسڪوگرافيڪڪ وڏي ڪيٽي موٽايو ته سي.

سست ترين ڪيٽ ڪوڊ حل لاءِ رستو  

مسئلو سست ترين ڪيٽ ڪوڊ حل اڳ ۾ ئي بيان ڪيو ويو آهي. مختصر ۾ ، مسئلو اسان کي چاٻي ڳولڻ لاءِ چيو آهي جيڪو عمل ڪرڻ لاءِ سڀ کان ڊگهو قسم وٺندو آهي. جيڪڏهن صورت ۾ ، ٻه يا وڌيڪ چابيون ساڳئي وقت تي عمل ڪرڻ لڳن ٿيون. پوءِ اسان کي گهربل آهي لغت جي تمام وڏي چٻي ڏي. مسئلو حل ڪرڻ لاءِ ، اسان هر دٻن جي دٻاءُ کي دٻايو ۽ جاري ڪيل وقت جو جائزو ورتو. پهرين ڪلي لاءِ اها رائيٽ ٽائم [0] جي برابر آهي ، ۽ پوءِ اها جاري ڪيل وقت [i] - releaseTime [i-1]. تنهن ڪري اسان ٻن متغيرات کي برقرار رکون ٿا ، هڪ جواب کي ذخيرو ڪري ٿو ، ۽ ٻيو اهو وقت بند ڪري ٿو جيڪو انهي چاٻي کي عمل ڪرڻ لاءِ گهري ٿو.

پڻ ڏسو
معلوم ٿيو ته هڪ ذيلي جبل واري شڪل ۾ آهي يا نه

اسان هر هڪ لاءِ چئلينج جي مٿان چڙهائي ڪئي ، هر هڪ لاءِ جاري ڪيل وقت جو جائزو ورتو. اسان جواب کي اپڊيٽ ڪيو جڏهن اسان کي هڪ ڪنڊ کي ڳولهيو ته يا ته گهڻو وقت لڳي ٿو يا موجوده جواب کان لنڪڪوگرافڪ وڏو آهي ۽ ان کي عمل ڪرڻ لاءِ ساڳئي وقت به ٿو وٺي آخر ۾ ، جواب ڪالنگ فنڪشن ڏانهن موٽايو ويو آهي.

سست ترين ليٽ ڪوڊ حل لاءِ ڪوڊ  

سي ++ ڪوڊ

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

char slowestKey(vector<int>& releaseTimes, string keysPressed) {
    int time = releaseTimes[0];
    char ans = keysPressed[0];
    for(int i=1;i<keysPressed.length();i++){
        int cur_time = releaseTimes[i] - releaseTimes[i-1];
        if(cur_time >= time){
            if(cur_time > time)
                ans = keysPressed[i], time = cur_time;
            else
                ans = max(ans, keysPressed[i]);
        }
    }
    return ans;
}

int main(){
    vector<int> releaseTimes = {9, 29, 49, 50};
    string keysPressed = "cbcd";
    cout<<slowestKey(releaseTimes, keysPressed);
}
c

جاوا ڪوڊ

import java.util.*;
import java.lang.*;
import java.io.*;
 
class Main
{
  public static char slowestKey(int[] releaseTimes, String keysPressed) {
        int time = releaseTimes[0];
        char ans = keysPressed.charAt(0);
        for(int i=1;i<keysPressed.length();i++){
            int cur_time = releaseTimes[i] - releaseTimes[i-1];
            if(cur_time >= time){
                if(cur_time > time){
                    ans = keysPressed.charAt(i);
                    time = cur_time;
                }
                else
                    ans = ans > keysPressed.charAt(i) ? ans : keysPressed.charAt(i);
            }
        }
        return ans;
    }
 
  public static void main (String[] args) throws java.lang.Exception {
    int[] releaseTimes = {9, 29, 49, 50};
      String keysPressed = "cbcd";
      System.out.print(slowestKey(releaseTimes, keysPressed));
  }
}
c

پيچيدگي تجزيي  

وقت جي پيچيدگي

اي (اين) ، ڇاڪاڻ ته ڏنل سڀني ڪيز تي سفر ڪيو آهي.

خلائي پيچيدگي

اي (1) ، ڇاڪاڻ ته اسان مسئلو حل ڪرڻ لاءِ صرف ٻه اضافي متغير استعمال ڪيا.

1