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

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

Ары қарай оқу

Ең көп халық саны 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 массивін жасағандықтан, оны тұрақты деп санауға болады

 

 

 

 

 

 

Барлығы 1 тобының Leetcode шешіміне ең аз своптар

Мәселе туралы мәлімдеме Барлығы 1-ді топтастыруға арналған ең аз своптар Leetcode шешімі – екілік массив деректерін ескере отырып, массивтегі барлық 1-ді массивтің кез келген жерінде бірге топтастыру үшін қажетті своптардың ең аз санын қайтару керек екенін айтады. Енгізу: деректер = [1,0,1,0,1] Шығару: 1 Түсіндіру: Барлығын топтастырудың 3 жолы бар ...

Ары қарай оқу

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

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

Ары қарай оқу

Ең жақсы кездесу нүктесі LeetCode шешімі

Мәселе туралы мәлімдеме: Ең жақсы кездесу нүктесі Leetcode шешімі былай дейді: Әр 1 бір достың үйін белгілейтін amxn екілік тор торын ескере отырып, ең аз жалпы саяхат қашықтығын қайтарыңыз. Жол жүрудің жалпы қашықтығы - достардың үйлері мен кездесу орны арасындағы қашықтықтардың қосындысы. Қашықтық Манхэттен қашықтығы арқылы есептеледі,…

Ары қарай оқу

Минималды жол сомасының Leetcode шешімі

Мәселенің мәлімдемесі Минималды жол сомасы LeetCode шешімі – «Ең аз жол сомасы» берілген anxm торы теріс емес бүтін сандардан тұратынын және жол бойындағы барлық сандардың қосындысын азайтатын жоғарғы солдан төмен оңға қарай жолды табу керек екенін айтады. . Біз тек қозғала аламыз ...

Ары қарай оқу

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

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

Ары қарай оқу

Берілген қосынды шарты LeetCode шешімін қанағаттандыратын ішкі реттіліктер саны

Мәселе мәлімдемесі Берілген қосынды шартын қанағаттандыратын бағыныңқы қатарлар саны LeetCode шешімі – бүтін сандар массиві сандар мен бүтін мақсат берілгенін айтады. Ондағы ең аз және ең үлкен элементтің қосындысы мақсаттан аз немесе тең болатындай бос емес ішкі реттік сандар санын қайтарыңыз. Өйткені жауап тым болуы мүмкін ...

Ары қарай оқу

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

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

Ары қарай оқу

Жою GetRandom O(1) Leetcode шешімін кірістіріңіз

Мәселе туралы мәлімдеме Insert Delete GetRandom O(1) LeetCode шешімі – “Insert Delete GetRandom O(1)” осы төрт функцияны O(1) уақыт күрделілігінде орындауды сұрайды. insert(val): вальді рандомизацияланған жиынға енгізіңіз және элемент бастапқыда жиында жоқ болса, шын мәнін қайтарыңыз. Ол жалған мәнін қайтарғанда…

Ары қарай оқу

Translate »