Rezultati i kllapave Zgjidhja LeetCode

Deklarata e problemit Rezultati i zgjidhjes LeetCode të kllapave thotë – Duke pasur parasysh një varg të balancuar kllapash s dhe ktheni rezultatin maksimal. Rezultati i një vargu të balancuar kllapash bazohet në rregullat e mëposhtme: "()" ka pikë 1. AB ka pikë A + B, ku A dhe B janë vargje kllapash të balancuara. (A) ka rezultatin 2 * A, ku A është një…

Lexo më shumë

Zgjidhja e LeetCode për kalimin e renditjes së pemës binare

Paraqitja e problemit: Përshkimi i renditjes së pemës binare Zgjidhja e LeetCode Duke pasur parasysh rrënjën e një peme binare, ktheni kalimin e rendit të vlerave të nyjeve të saj. Shembulli 1: Hyrja: rrënjë = [1,null,2,3] Dalja: [1,3,2] Shembulli 2: Hyrja: rrënjë = [] Dalja: [] Shembulli 3: Hyrja: rrënja = [1] Dalja: [1] Kufizimet: Numri i nyjeve në…

Lexo më shumë

Zgjidhja e dekodimit të vargut Leetcode

Deklarata e problemit Vargu i dekodimit Zgjidhja e LeetCode – “Dekodimi i vargut” ju kërkon të konvertoni vargun e koduar në një varg të dekoduar. Rregulli i kodimit është k[string_i koduar], ku vargu i koduar brenda kllapave katrore po përsëritet saktësisht k herë ku k është një numër i plotë pozitiv. Shembull: Hyrja: s = ”3[a]2[bc]” Dalja: “aaabcbc”…

Lexo më shumë

Rrafshoni Pemën Binare në Zgjidhjen LeetCode të Listës së Lidhur

Rrafshoni Pemën Binare në Zgjidhjen LeetCode të Listës së Lidhur thotë se – Duke pasur parasysh root të një peme binare, rrafshoni pemën në një "listë të lidhur":

  • "Lista e lidhur" duhet të përdorë të njëjtën gjë TreeNode klasa ku right treguesi i fëmijës tregon në nyjen tjetër në listë dhe left treguesi i fëmijës është gjithmonë null.
  • "Lista e lidhur" duhet të jetë në të njëjtin rend si a para-qëllim përshkimi të pemës binare.

 

1 Shembull:

Rrafshoni Pemën Binare në Zgjidhjen LeetCode të Listës së Lidhurinput:

 root = [1,2,5,3,4,null,6]

output:

 [1,null,2,null,3,null,4,null,5,null,6]

2 Shembull:

input:

 root = []

output:

 []

3 Shembull:

input:

 root = [0]

output:

 [0]

 

ALGORITMI -

IDE -

  • Për të rrafshuar një pemë binare, fillimisht do të gjejmë elementin më të djathtë të nënpemës së majtë dhe pasi të kemi marrë elementin më të djathtë, do të lidhim treguesin e djathtë të asaj nyje me një nënpemë të djathtë të një peme të caktuar.
  • Në hapin 2 ne do të lidhim treguesin e djathtë të nyjës rrënjë me nënpemën e majtë dhe do ta vendosim nënpemën e majtë si null.
  • Në hapin 3 tani nyja jonë rrënjë është një nyje e nënpemës së djathtë i njëjti proces do të ndodhë me këtë nyje dhe procesi do të vazhdojë akoma derisa të gjitha pjesët e majta të bëhen të pavlefshme.

Qasje për rrafshimin e pemës binare me zgjidhjen e kodit Leetcode të listës së lidhur -

– Në fillim, do të ekzekutoj një lak, dmth while(root != null) më pas do të marr dy variabla dhe do të ruaj nënpemën e majtë.

– pastaj do të kontrollojë kontrollin për nyjen më të djathtë të nënpemës së majtë duke përdorur while(k.left != null) dhe do ta lidhë atë nyje me nënpemën e djathtë duke përdorur (k.right = root.right).

– më pas lidhni treguesin e djathtë të nyjës rrënjë me nënpemën e majtë (root.djathtas = majtas) dhe vendosni treguesin e majtë të nyjes rrënjë si null (root.left=null) dhe do të përditësohet me (rrënjë = rrënjë.djathtas) kështu që tani rrënja është e drejtë nyja e nënpemës.

– ky proces do të vazhdojë derisa të gjitha pjesët e nënpemës së majtë të bëhen nënpema e djathtë. Prandaj, pema binare do të rrafshohet.

 

Rrafshoni Pemën Binare në Zgjidhjen LeetCode të Listës së Lidhur

Rrafshoni Pemën Binare në Zgjidhjen LeetCode të Listës së Lidhur

Zgjidhja e Python:

class Solution:
    def flatten(self, root: Optional[TreeNode]) -> None:
        while(root):
            
            if root.left:
                
                k = root.left
                temp = root.left
            
            
                while(k.right):
                    k = k.right
            
                k.right = root.right
            
                root.right = temp
            
                root.left = None
            
            root = root.right

Zgjidhja Java:

class Solution {
    public void flatten(TreeNode root) {       
        while (root != null) {
            if (root.left != null) {
                TreeNode k = root.left;
                TreeNode temp = root.left;
                while (k.right != null) k = k.right;
                k.right = root.right;
                root.right = temp;
                root.left = null;
            }
            root = root.right;
        }
    }
}

Kompleksiteti kohor: O(N)

Kompleksiteti i hapësirës: O (1)

Meqë kemi përshkuar vetëm një herë, kompleksiteti kohor do të jetë o(n).

dhe meqenëse nuk kemi zënë hapësirë ​​shtesë, kompleksiteti i hapësirës do të jetë o(1) hapësirë ​​shtesë konstante.

Pyetje e ngjashme - https://www.tutorialcup.com/interview/linked-list/flattening-linked-list.htm

Shto dy numra II Zgjidhje Leetcode

Deklarata e problemit Shtoni dy numra II Zgjidhja e LeetCode – “Shto dy numra II” thotë se dy lista të lidhura jo boshe përfaqësojnë dy numra të plotë jo negativë ku shifra më domethënëse vjen e para dhe secila nyje përmban saktësisht një shifër. Duhet të shtojmë dy numrat dhe ta kthejmë shumën si…

Lexo më shumë

Zgjidhja e Leetcode për Temperaturat Ditore

Paraqitja e problemit Temperaturat ditore Zgjidhja e Leetcode: thotë se, duke pasur parasysh një grup të numrave të plotë, temperaturat përfaqësojnë temperaturat ditore, ktheni një përgjigje të grupit të tillë që përgjigja[i] është numri i ditëve që duhet të prisni pas ditës së itë për të marrë një temperaturë më të ngrohtë. Nëse nuk ka një ditë të ardhshme për të cilën kjo është e mundur, mbani përgjigje[i] == 0 në vend të kësaj. …

Lexo më shumë

Minimumi Hiq për të bërë kllapa të vlefshme Zgjidhja LeetCode

Deklarata e problemit Heqja minimale për të bërë kllapa të vlefshme Zgjidhja LeetCode – Ju jepet një varg me shkronja '(', ')' dhe të vogla angleze. Detyra juaj është të hiqni numrin minimal të kllapave ( '(' ose ')', në çdo pozicion ) në mënyrë që vargu i kllapave që rezulton të jetë ...

Lexo më shumë

Trapping Rain Leetcode Solution

Deklarata e problemit Zgjidhja e kodit të grumbullimit të ujit të shiut Leet – “Trapping Rain Water” thotë se duke pasur parasysh një grup lartësish që përfaqëson një hartë lartësie ku gjerësia e çdo shiriti është 1. Ne duhet të gjejmë sasinë e ujit të bllokuar pas shiut. Shembull: Hyrja: lartësia = [0,1,0,2,1,0,1,3,2,1,2,1] Dalja: 6 Shpjegim: Kontrollo…

Lexo më shumë

Zgjidhje Leetcode me kllapa të vlefshme

Deklarata e problemit Kllapat e vlefshme Zgjidhja e LeetCode – “Kllapat e vlefshme” shprehet se ju jepet një varg që përmban vetëm karakteret '(', ')', '{', '}', '[' dhe ']'. Ne duhet të përcaktojmë nëse vargu i hyrjes është një varg i vlefshëm apo jo. Një varg thuhet se është një varg i vlefshëm nëse kllapat e hapura duhet të mbyllen…

Lexo më shumë

Zgjidhje Leetcode Stack Frekuenca maksimale

Deklarata e problemit Zgjidhja e Stackit të Frekuencës Maksimale LeetCode – “Rivi i frekuencës maksimale” ju kërkon të dizajnoni një pirg frekuencash në të cilën sa herë që nxjerrim një element nga pirgu, ai duhet të kthejë elementin më të shpeshtë të pranishëm në pirg. Zbatoni klasën FreqStack: FreqStack() ndërton një pirg të zbrazët të frekuencës. shtytje e pavlefshme (int val) shtyn…

Lexo më shumë

Translate »