د کیټ لیټکوډ خورا ورو حل


مشکل کچه په اسانۍ سره
په مکرر ډول دننه پوښتل کیږي ترلاسه کړئ Amazon
پیشه

د ستونزې ورو کیلي لیټکوډ حل موږ ته د کیلو لړۍ درکوي چې فشار ورکړ شوی. موږ ته هم ورکړل شو سور یا د دې کیلي خوشې کیدو وخت ویکتور. د کیلي ترتیب د تار په ب inه ورکړل شوی. نو ، ستونزه موږ څخه وغوښتل چې ورو ورو کیلي ومومئ ، کوم چې د عمل لپاره ترټولو اوږده وخت نیسي. د عمل یا ډول لپاره کیلي لخوا اخیستل شوی وخت د اوسني کیلي او مخکینۍ کیلي لپاره د خوشې کولو وختونو توپیر دی چې فشار اچول شوی و. په هغه حالت کې چې موږ دوه یا ډیرو کیلي ګانو ته راځو چې ورته وخت نیسي. نو موږ هغه کلید بیرته راوړو چې په لیکسرافیک ډول خورا لوی دی. مخکې لدې چې ژورې حل ته لاړو ، راځئ لومړی یو څو مثالونو ته یوه کتنه وکړو.

د کیټ لیټکوډ خورا ورو حل

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

توضیحي: د هرې کیلي لخوا وخت اخیستل شوی وخت 9 ، 20 ، 20 ، 1 دی. د خوشې کولو دا وختونه په ترتیب سره د c ، b ، c ، او d لپاره دي. ځکه چې د کیچونو b او c لپاره د خوشې کولو وخت یو شان دي. موږ د لغتونو ترټولو لوی کیلي بیرته راوړو چې c.

د لیست کود ورو حل لپاره لاره

د ستونزې خورا ټیټ لیټکوډ حل دمخه پورته تشریح شوی. په لنډه توګه ، ستونزې موږ څخه غوښتنه وکړه چې دا کلی ومومئ چې د اعدام کولو لپاره ترټولو اوږده ډول نیسي. که په قضیه کې ، دوه یا ډیرې کیليګانې د اجرا کولو لپاره ورته وخت ونیسي. بیا موږ اړتیا لرو چې د لغتونو ترټولو لوی کیلي راستن کړو. د ستونزې حل کولو لپاره ، موږ په ساده ډول د فشار شویو کیلو څخه تیروو او د هرې کیلي لپاره د خوشې کولو وخت ارزونه کوو. د لومړۍ کلید لپاره دا د خوشي کول وخت [0] سره مساوي دی ، او بیا دا د ریلیز ټایم [i] - ریلیز ټایم [i-1] دی. نو موږ دوه تغیرات ساتو ، یو یې ځواب ذخیره کوي ، او بل یې هغه وخت ذخیره کوي چې دا کلیمه پلي کولو کې نیسي.

موږ کلیدونه تعقیب کوو ، د هرې لپاره د خوشې کولو وخت ارزونه. موږ ځواب تازه کوو کله چې موږ داسې کیلي ومومئ چې یا یې ډیر وخت نیسي یا د اوسني ځواب څخه په لیکسوګرافیک ډول لوی دی او د اعدام کولو لپاره ورته وخت نیسي. په پای کې ، ځواب د زنګ وهلو فعالیت ته راستون شو.

د سستۍ کیلي لیټکوډ حل لپاره کوډ

C ++ کوډ

#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

د پیچلتیا تحلیل

د وخت پیچلتیا

O (N) ، ځکه چې ټولې ورکړل شوې کیلي ګانې دي.

د ځای پیچلتیا

O (1) ، ځکه چې موږ د ستونزې حل کولو لپاره یوازې دوه اضافي تغیرات کارول.