Վավեր Anagram Leetcode լուծում

Խնդրի հայտարարություն Valid Anagram Leetcode լուծում – Հաշվի առնելով երկու s և t տողերը, վերադարձրեք true, եթե t-ը s-ի անագրամ է, իսկ հակառակ դեպքում՝ false: Անագրամը բառ կամ արտահայտություն է, որը ձևավորվում է մեկ այլ բառի կամ արտահայտության տառերը վերադասավորելու միջոցով՝ սովորաբար օգտագործելով բոլոր բնօրինակ տառերը ուղիղ մեկ անգամ: Օրինակ 1. Մուտք. s = «anagram», t = «nagaram» Արդյունք. …

Կարդալ ավելին

Isomorphic strings LeetCode լուծում

Խնդրի ձևակերպում Իզոմորֆ տողեր LeetCode-ի լուծում – Հաշվի առնելով երկու s և t տողերը, որոշեք, թե արդյոք դրանք իզոմորֆ են: Երկու s և t տողերը իզոմորֆ են, եթե s-ի նիշերը կարող են փոխարինվել t ստանալու համար: Նիշերի բոլոր երևույթները պետք է փոխարինվեն մեկ այլ նիշով՝ պահպանելով նիշերի հերթականությունը: Երկու նիշ չի կարող քարտեզագրվել…

Կարդալ ավելին

Միապաղաղ զանգված Leetcode լուծում

Խնդրի ձևակերպում. Միապաղաղ զանգվածի Leetcode լուծում – Տրված զանգվածը միապաղաղ է, եթե այն կամ միատոն աճող է կամ միատոն նվազող: Զանգվածի թվերը միատոն են աճում, եթե i <= j, nums[i] <= nums[j] բոլորի համար: Զանգված nums-ը միատոն նվազում է, եթե բոլորի համար i <= j, nums[i] >= nums[j]: Հաշվի առնելով ամբողջ զանգվածի թվերը, վերադարձրեք true, եթե տրված…

Կարդալ ավելին

High Five LeetCode լուծում

Խնդրի ձևակերպում. High Five LeetCode լուծում – Տրվում է «տարր» անունով տարբեր ուսանողների միավորների ցանկը, որտեղ «տարրը» ունի երկու դաշտ, տարրը[0] ներկայացնում է ուսանողի id-ը, իսկ տարրը [1] ներկայացնում է ուսանողի միավորը, օրինակ. կետ[i]=[IDi, SCOREi] Պատասխանը վերադարձրեք որպես արդյունք զույգերի զանգված, որտեղ արդյունք[j] =…

Կարդալ ավելին

BST LeetCode լուծման միջակայքի գումարը

BST LeetCode Solution-ի միջակայքի գումարը ասում է, որ – Հաշվի առնելով երկուական որոնման ծառի հանգույցի արմատը և երկու ամբողջ թվերը՝ ցածր և բարձր, վերադարձրեք բոլոր հանգույցների արժեքների գումարը ներառական տիրույթում [ցածր, բարձր] արժեք ունեցող: Օրինակ 1. Մուտք. արմատ = [10,5,15,3,7, null,18], ցածր = 7, բարձր = 15 Արդյունք. 32 Բացատրություն. …

Կարդալ ավելին

Պտտեցնել String LeetCode լուծումը

Խնդրի հայտարարություն Պտտեցնել տողը LeetCode-ի լուծում – Հաշվի առնելով երկու տողերը և նպատակը, վերադարձրեք ճշմարիտ, եթե և միայն այն դեպքում, եթե s-ը կարող է դառնալ նպատակ s-ի մի շարք տեղաշարժերից հետո: S-ի տեղաշարժը բաղկացած է s-ի ամենաձախ նիշը ամենաաջ դիրքը տեղափոխելուց: Օրինակ, եթե s = «abcde», ապա դա կլինի…

Կարդալ ավելին

Excel թերթիկի սյունակի համարը LeetCode լուծում

Խնդրի շարադրանք Excel թերթիկի սյունակի համարը LeetCode Solution-ը ասում է, որ հաշվի առնելով տողային սյունակի վերնագիրը, որը ներկայացնում է սյունակի վերնագիրը, ինչպես երևում է Excel թերթում, վերադարձրեք դրա համապատասխան սյունակի համարը: Օրինակ՝ A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … …

Կարդալ ավելին

Գտեք Town Judge LeetCode լուծումը

Խնդրի ձևակերպում. Գտեք քաղաքի դատավորին Լիթկոդ լուծում. Քաղաքում կա n մարդ, որոնք պիտակավորված են 1-ից մինչև n: Խոսակցություն կա, որ այդ մարդկանցից մեկը թաքուն քաղաքի դատավորն է։ Եթե ​​քաղաքի դատավորը գոյություն ունի, ուրեմն. Քաղաքի դատավորը ոչ ոքի չի վստահում: Բոլորը (բացի քաղաքային դատավորից) վստահում են քաղաքային դատավորին: …

Կարդալ ավելին

Ուղղանկյունի համընկնումը LeetCode լուծում

Խնդրի ձևակերպում. Ուղղանկյունի համընկնումը LeetCode լուծում – ասում է, որ առանցքի հավասարեցված ուղղանկյունը ներկայացված է որպես ցուցակ, [x1, y1, x2, y2], որտեղ (x1, y1) նրա ներքևի ձախ անկյունի կոորդինատն է, և (x2): , y2) նրա վերին աջ անկյունի կոորդինատն է։ Նրա վերին և ստորին եզրերը զուգահեռ են X առանցքին, իսկ ձախը…

Կարդալ ավելին

Առավելագույն բնակչության տարի LeetCode լուծում

Խնդիրի հայտարարություն

Առավելագույն բնակչության տարի LeetCode լուծում ասում է, որ – Ձեզ տրվում է 2D ամբողջ թվով զանգված logs որտեղ յուրաքանչյուրը logs[i] = [birthi, deathi] ցույց է տալիս ծննդյան և մահվան տարիները ith անձը:

The մի քանի տարվա բնակչություն x-ը այդ տարվա ընթացքում ողջ մարդկանց թիվն է: Այն 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-ից մինչև լոգերի երկարությունը և կավելացնենք զանգվածի քանակը ինդեքսում (logs[i][o]) 1-ով և կնվազեցնենք զանգվածի քանակը ինդեքսում (logs[i): ][1]) 1-ով

– նորից մենք կանցկացնենք 0-ից մինչև զանգվածի երկարությունը և կկազմենք մեկ փոփոխական prev count և կթարմացնենք զանգվածի յուրաքանչյուր տարր ըստ զանգվածի+նախորդ և թարմացնելու prev ըստ prev = array[i]:

– վերջապես, մենք կգործարկենք օղակ և կգտնենք առավելագույն արժեքը զանգվածում և կվերադարձնենք այդ կոնկրետ ինդեքսը (index+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 լուծում.

Timeամանակի բարդություն

Վերոնշյալ լուծման ժամանակային բարդությունը O(n) է:

Timeամանակի բարդություն

Վերոհիշյալ լուծման տիեզերական բարդությունը O(1) է:

Քանի որ մենք կազմել ենք երկարության զանգված = 101: Այսպիսով, մենք կարող ենք այն համարել հաստատուն

 

 

 

 

 

 

Translate »