Секіру ойыны IV LeetCode шешімі

Мәселе туралы мәлімдеме: Jump Game IV LeetCode шешімі былай дейді: arr бүтін сандарының массивін ескере отырып, сіз бастапқыда массивтің бірінші индексінде орналасасыз. Бір қадамда i индексінен индекске өтуге болады: i + 1 мұндағы: i + 1 < arr.length. i – 1 мұндағы: i – 1 >= …

Ары қарай оқу

Ең қысқа сұрыпталмаған үздіксіз бағыныңқы жиек LeetCode шешімі

Мәселе мәлімдемесі Ең қысқа сұрыпталмаған үздіксіз бағыныңқы жиым LeetCode Шешімі мынаны айтады: Бүтін массив сандары берілгенде, егер сіз тек осы ішкі жиымды тек өсу ретімен сұрыптасаңыз, онда бүкіл массив өсу ретімен сұрыпталатын бір үздіксіз ішкі жиымды табу керек. Ең қысқа ішкі жиымның ұзындығын қайтарыңыз. 1-мысал: …

Ары қарай оқу

Түбірді жапырақ сандарына қосу LeetCode шешімі

Мәселе мәлімдемесі Түбірден жапырақ сандарына қосынды LeetCode шешімі былай дейді: – Сізге тек 0-ден 9-ға дейінгі сандарды қамтитын екілік ағаштың түбірі беріледі. Ағаштағы әрбір тамырдан жапыраққа дейінгі жол санды білдіреді. Мысалы, түбірден жапыраққа жол 1 -> 2 -> 3 123 санын білдіреді. Барлық түбірден жапыраққа дейінгі сандардың жалпы сомасын қайтарыңыз. Сынақ…

Ары қарай оқу

LeetCode Шешім жақшасының ұпайы

Мәселе туралы мәлімдеме LeetCode Шешім жақшасының ұпайы былай дейді: Теңдестірілген жақшалар жолы берілген s және максималды ұпайды қайтарады. Теңгерілген жақша жолының ұпайы келесі ережелерге негізделген: «()» 1 ұпайға ие. AB ұпайы A + B ұпайына ие, мұнда A және B теңестірілген жақша жолдары. (A) 2 * A ұпайы бар, мұндағы А – …

Ары қарай оқу

Тіктөртбұрыш қабаттасуы LeetCode шешімі

Мәселе туралы мәлімдеме: Тіктөртбұрыштың қабаттасуы LeetCode шешімі – ось бойынша тураланған тіктөртбұрыш тізім ретінде ұсынылатынын айтады, [x1, y1, x2, y2], мұндағы (x1, y1) оның төменгі сол жақ бұрышының координатасы және (x2) , y2) оның жоғарғы оң жақ бұрышының координатасы. Оның үстіңгі және төменгі жиектері X осіне параллель, ал сол жақ …

Ары қарай оқу

Ең көп халық саны LeetCode шешімі

Проблемалық мәлімдеме

Ең көп халық саны LeetCode шешімі былай дейді – Сізге 2D бүтін массив беріледі logs қайда logs[i] = [birthi, deathi] туған және өлген жылдарын көрсетеді ith адам.

The бір жылғы халық x - сол жылдағы тірі адамдар саны. The ith адам жылы есептеледі xхалқының саны, егер x орналасқан инклюзивті диапазон [birthi, deathi - 1]. адам екенін ескеріңіз емес олар өлген жылы есептеледі.

қайтару Ең көп халық саны.

 

Мысал 1:

Кіру:

 logs = [[1993,1999],[2000,2010]]

Шығару:

 1993

Түсіндіру:

 The maximum population is 1, and 1993 is the earliest year with this population.

Мысал 2:

Кіру:

 logs = [[1950,1961],[1960,1971],[1970,1981]]

Шығару:

 1960

Түсіндіру:

 
The maximum population is 2, and it had happened in years 1960 and 1970.
So the maximum population year is 1960.

 

Шектеулер:

  • 1 <= logs.length <= 100
  • 1950 <= birthi < deathi <= 2050

 

АЛГОРИТМ –

  • Ең көп қоныстанған жылды табу үшін. Біріншіден, біз берілген матрицаның әрбір интервалын тексеру арқылы әр жылдағы жалпы халық санына назар аударамыз және максималды санды табамыз және максималды мән жылын қайтарамыз. Егер сан бірдей болса, біз жай ғана өткен жылды қайтарамыз (ең ерте жыл).

Ең көп қоныстанған жыл тәсілі LeetCode шешімі

– Біріншіден, біз 101 өлшемді бір массив жасаймыз, өйткені жылдар шектеулері 1950 мен 2050 аралығында болады.

– содан кейін біз 0-ден журналдардың ұзындығына дейін циклды орындаймыз және index(logs[i][o]) массивінің санын 1-ге көбейтеміз және индекстегі массивтің санын азайтамыз (logs[i ][1]) 1 бойынша

– қайтадан біз 0-ден массив ұзындығына дейін циклды орындаймыз және бір айнымалыны prev санайтын етіп жасаймыз және массивтің әрбір элементін array+prev арқылы жаңартамыз және prev prev = array[i] арқылы жаңартамыз.

– соңында біз циклды орындаймыз және массивтегі максималды мәнді табамыз және нақты индексті қайтарамыз (индекс+1950). Демек, ең үлкен халық жылын табыңыз.

Ең көп қоныстанған жыл Leetcode шешімі

Код:

Ең көп халық саны Python Leetcode шешімі:

class Solution:
    def maximumPopulation(self, logs: List[List[int]]) -> int:
        arr = [0]*101
        for i in range(len(logs)):
            
            arr[logs[i][0]-1950] += 1
            
            arr[logs[i][1]-1950] -= 1
            
        
        previous = arr[0]
        for i in range(1,101):
            arr[i] += previous
            previous = arr[i]
            
        print(arr)
        maxi = 0
        ind = 0
        
        for i in range(len(arr)):
            if arr[i] > maxi:
                maxi = arr[i]
                ind = i + 1950
        print(maxi)        
        return ind

Ең көп халық саны Java Leetcode шешімі:

class Solution {
    public int maximumPopulation(int[][] logs) {
        
        int[] arr = new int[101];
        for(int i = 0;i < logs.length;i++){
            
            arr[logs[i][0]-1950] +=1;
            arr[logs[i][1]-1950] -=1;
            
            
        }
        
        int prev = arr[0];
        for(int i=1;i<arr.length;i++){
            
            arr[i] += prev;
            prev = arr[i];
            
        }
        
        int ind = 0;
        int maxi = 0;
        
        for(int i=0;i<arr.length;i++){
            
            if(maxi < arr[i]){
                
                maxi = arr[i];
                ind = i+1950;
            }
        }
        
        
        return ind;
        
        
    }
}

Ең көп қоныстанған жыл Leetcode шешімін күрделілік талдауы:

Уақыттың күрделілігі

Жоғарыдағы шешімнің уақыт күрделілігі O(n).

Уақыттың күрделілігі

Жоғарыдағы шешімнің кеңістіктік күрделілігі O(1).

Ұзындығы = 101 массивін жасағандықтан, оны тұрақты деп санауға болады

 

 

 

 

 

 

Екілік ағаштың ретімен өтуі LeetCode шешімі

Мәселе туралы мәлімдеме: Екілік ағаштың ретімен өтуі LeetCode шешімі Екілік ағаштың түбірін ескере отырып, оның түйіндерінің мәндерінің ретімен өтуін қайтарыңыз. 1-мысал: Енгізу: root = [1,null,2,3] Шығару: [1,3,2] 2-мысал: Кіріс: root = [] Шығу: [] 3-мысал: Кіріс: root = [1] Шығыс: [1] Шектеулер: ... ішіндегі түйіндер саны

Ары қарай оқу

Stone Game IV LeetCode шешімі

Мәселе мәлімдемесі тас ойыны IV LeetCode шешімі – Алиса мен Боб кезектесіп ойын ойнайды, бірінші болып Алиса басталады. Бастапқыда бір үйіндіде n тас бар. Әрбір ойыншының кезегімен бұл ойыншы қададағы кез келген нөлдік шаршы емес тастарды алып тастаудан тұратын қозғалыс жасайды. Сондай-ақ, егер ойыншы қозғалыс жасай алмаса, ол ...

Ары қарай оқу

График екі жақты ма? LeetCode шешімі

Мәселе мәлімдемесі – екі жақты LeetCode шешімі – n түйіні бар бағытталмаған график бар, мұнда әрбір түйін 0 және n – 1 аралығында нөмірленеді. Сізге 2D жиым графигі берілген, мұндағы graph[u] – u түйінін түйіндейтін түйіндердің жиымы. іргелес орналасқан. Ресми түрде, [u] графындағы әрбір v үшін u түйіні мен v түйіні арасында бағытталмаған жиек бар. Графикте ...

Ары қарай оқу

Сұрыпталған шеңберлі байланыстырылған тізімге кірістіру LeetCode шешімі

Мәселе туралы мәлімдеме: Сұрыпталған шеңберлі байланыстырылған тізімге кірістіру LeetCode шешімі – өсу ретімен сұрыпталған Шеңбер байланыстырылған тізім түйінін ескере отырып, сұрыпталған дөңгелек тізім болып қалатындай insertVal мәнін тізімге кірістіру функциясын жазыңыз. Берілген түйін ... болуы мүмкін.

Ары қарай оқу

Translate »