Оҳиста ҳалли Leetcode калиди


Сатҳи душворӣ осон
Аксар вақт пурсида мешавад Amazon
тартиботи ҳарбӣ

Мушкилоти Slowest Key Leetcode Solution ба мо пайдарпаии тугмаҳои пахш кардашударо медиҳад. Мо инчунин як асал ё вектори маротиба ин тугмаҳо озод карда шуданд. Пайдарпаии калидҳо дар шакли сатр дода мешавад. Ҳамин тавр, мушкилот аз мо хоҳиш кард, ки калиди сусттаринро пайдо кунем, ки вақти дарозтаринро иҷро мекунад. Вақти коркардан ё чоп кардани тугма фарқи вақтҳои озодкунӣ барои калиди ҷорӣ ва тугмаи қаблии пахшшуда мебошад. Дар ҳолате, ки мо бо ду ва ё зиёда калидҳо дучор оем, ки ҳамзамонро талаб мекунанд. Ҳамин тавр, мо калидеро, ки аз ҷиҳати лексикографӣ калонтарин аст, бармегардонем. Пеш аз он ки ба ҳалли амиқ ғӯтонед, биёед аввал якчанд мисолро дида бароем.

Оҳиста ҳалли Leetcode калиди

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

Шарҳ: Вақти аз ҷониби ҳар як калид гирифташуда 9, 20, 20, 1 мебошад. Ин вақти озодкунӣ мутаносибан барои тугмаҳои c, b, c ва d мебошанд. Азбаски вақти баромади тугмаҳои b ва c як аст. Мо калиди аз ҷиҳати лексикографӣ калонтаринро бармегардонем, ки в.

Усули ҳалли Slowest Key Leetcode Solution

Масъалаи Slowest Key Leetcode Solution аллакай дар боло тавсиф шудааст. Хулоса, мушкилот аз мо хоҳиш кард, ки калидеро ёбем, ки навъи дарозтаринро иҷро кунад. Агар дар ҳолате, ки ду ва ё зиёда калидҳо барои иҷро кардан айни замон вақт мегиранд. Он гоҳ аз мо талаб карда мешавад, ки калиди аз ҷиҳати лексикографӣ калонро баргардонем. Барои ҳалли мушкилот, мо танҳо аз болои тугмаҳои пахшшуда убур карда, вақти баромади ҳар як тугмаро арзёбӣ мекунем. Барои калиди аввал он ба releaseTime [0] баробар аст ва пас он releaseTime [i] - releaseTime [i-1] мебошад. Ҳамин тавр, мо ду тағирёбандаро нигоҳ медорем, яке ҷавобро нигоҳ медорад ва дигаре вақти иҷрои ин калидро нигоҳ медорад.

Мо аз болои тугмаҳо мегузарем ва вақти баромади ҳар яки онҳоро арзёбӣ мекунем. Вақте ки калидеро пайдо кардем, ки ё вақти зиёдтар мегирад ё аз ҷиҳати лексикографӣ нисбат ба ҷавоби кунунӣ калонтар аст ва инчунин барои иҷро кардан ҳамон вақтро талаб мекунад, мо ҷавобро нав мекунем. Дар охир, ҷавоб ба функсияи даъват баргардонида мешавад.

Рамз барои Slowest Key Leetcode Solution

Коди 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

Рамзи Java

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), зеро аз болои ҳамаи калидҳои додашуда гузаштааст.

Мураккабии фазо

О (1), зеро барои ҳалли масъала мо танҳо ду тағирёбандаи изофиро истифода кардем.