Тіктөртбұрыш қабаттасуы 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] Шектеулер: ... ішіндегі түйіндер саны

Ары қарай оқу

Capital Leetcode шешімін анықтау

Мәселе туралы мәлімдеме: Capital Leetcode шешімі мынаны айтады: Жол берілген болса, онда бас әріптерді дұрыс пайдалану дұрыс болса, true мәнін қайтарыңыз. Дұрыс сөздердің шарттары: Бұл сөздегі барлық әріптер «Ұлыбритания» сияқты бас әріптермен жазылған. Бұл сөздегі барлық әріптер «бару» сияқты бас әріптер емес. Тек…

Ары қарай оқу

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

Мәселе туралы мәлімдеме: Ең көп қоныстанған жылы Leetcode шешімі мынаны айтады: – Сізге 2D бүтін массив журналдары беріледі, онда әрбір журналдар[i] = [birthi, deathi] i-ші адамның туған және қайтыс болған жылдарын көрсетеді. Кейбір жылғы халық x сол жылдағы тірі адамдар саны? I-ші адам х жыл популяциясында есептеледі, егер x - ...

Ары қарай оқу

Баспалдақпен өрмелеудің минималды құны LeetCode шешімі

Мәселе туралы мәлімдеме Баспалдақпен көтерілудің минималды құны LeetCode шешімі – бүтін массив құны берілген, мұнда құны [i] – баспалдақтағы i-ші қадамның құны. Құнды төлегеннен кейін сіз бір немесе екі сатыға көтеріле аласыз. Сіз 0 индексі бар қадамнан немесе ... бар қадамнан бастай аласыз.

Ары қарай оқу

Қала судьясы LeetCode шешімін табыңыз

Мәселе туралы мәлімдеме: Қала судьясы LeetCode шешімін табыңыз – Қалада 1-ден n-ге дейін таңбаланған n адам бар. Осы кісілердің бірі жасырын түрде қала судьясы болып табылады және біз қала судьясын табуымыз керек деген қауесет бар. Егер қала судьясы бар болса, онда: Қалалық судья ешкімге сенбейді. …

Ары қарай оқу

Монеталарды ұйымдастыру Leetcode шешімі

Мәселе туралы мәлімдеме Монеталарды реттеу LeetCode шешімі – «Монеталарды реттеу» осы монеталар арқылы баспалдақ салуды сұрайды. Баспалдақ k қатардан тұрады, онда i-ші қатар дәл i тиындардан тұрады. Баспалдақтың соңғы қатары толық болмауы мүмкін. Берілген монета сомасы үшін қайтарыңыз ...

Ары қарай оқу

LeetCode Шешімінің массивін біріктіру

Мәселе сипаттамасы: Массивтің конкатенциясы Leetcode Шешім: ұзындығы n болатын бүтін массив берілгенде, ұзындығы 2n ans массивін жасағыңыз келетінін айтады, мұнда ans[i] == nums[i] және ans[i + n] = = 0 <= i < n (0-индекстелген) үшін сандар[i]. Атап айтқанда, ans - екі сандық массивтің жалғауы. ans массивін қайтарыңыз. Алдымен мәселені және оның нені білдіретінін түсінуге тырысайық. Мәселесі …

Ары қарай оқу

Кескінді аудару LeetCode шешімі

Мәселе туралы мәлімдеме Кескінді аудару LeetCode Шешімі – Бізге n өлшемді матрица берілген. Бізге 2 тапсырманы орындау керек – кескінді көлденеңінен аударыңыз: бұл берілген матрицаның әрбір жолы кері бұрылады дегенді білдіреді кескінді төңкеріңіз: барлық 0-ді 1-ге қойыңыз және керісінше Нәтижені қайтарыңыз ...

Ары қарай оқу

Translate »