Stig af sviga LeetCode lausn

Vandamál Staðsetning Sviga LeetCode Lausn segir - Gefið jafnvægi sviga strengur s og skila hámarkseinkunn. Einkunn á svigastreng með jafnvægi byggir á eftirfarandi reglum: „()“ hefur einkunnina 1. AB hefur einkunnina A + B, þar sem A og B eru jafnvægissvigastrengir. (A) hefur einkunnina 2 * A, þar sem A er …

Lesa meira

Binary Tree Inorder Traversal LeetCode Lausn

Vandamálsyfirlýsing: Tvöfaldur tré í röð LeetCode lausn Með hliðsjón af rót tvöfalds trés, skilaðu óraða yfirferð hnúta þess. Dæmi 1: Inntak: rót = [1,null,2,3] Úttak: [1,3,2] Dæmi 2: Inntak: rót = [] Úttak: [] Dæmi 3: Inntak: rót = [1] Úttak: [1] Takmarkanir: Fjöldi hnúta í …

Lesa meira

Afkóða streng Leetcode lausn

Vandamálsyfirlýsing Afkóðastrengurinn LeetCode Lausnin – „Afkóðastrengur“ biður þig um að umbreyta kóðaða strengnum í afkóðaðan streng. Kóðunarreglan er k[kóðaður_strengur], þar sem kóðaði_strengurinn innan hornklofa er endurtekinn nákvæmlega k sinnum þar sem k er jákvæð heil tala. Dæmi: Inntak: s = ”3[a]2[bc]” Úttak: “aaabcbc” …

Lesa meira

Flettu tvöfalda tré við tengda lista LeetCode lausn

Flettu tvöfalda tré við tengda lista LeetCode lausn segir að - Í ljósi þess root af tvíundartré, flettu tréð út í „tengdan lista“:

  • „Tengdi listinn“ ætti að nota það sama TreeNode bekk þar sem right barnabendill bendir á næsta hnút á listanum og left barn bendill er alltaf null.
  • „Tengdi listinn“ ætti að vera í sömu röð og a Pre-röð yfirferð af tvíundartrénu.

 

Dæmi 1:

Flettu tvöfalda tré við tengda lista LeetCode lausninntak:

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

Output:

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

Dæmi 2:

inntak:

 root = []

Output:

 []

Dæmi 3:

inntak:

 root = [0]

Output:

 [0]

 

ALGÓRITIMA -

HUGMYND -

  • Til þess að fletja út tvöfalda tré, finnum við fyrst hægra megin í vinstra undirtrénu og eftir að við höfum náð hæsta stakinu munum við tengja hægri bendilinn þess hnúts við hægri undirtré tiltekins trés.
  • Í skrefi 2 munum við tengja hægri bendilinn á rótarhnútnum við vinstri undirtréð og stilla vinstri undirtréð sem núll.
  • Í skrefi 3 er nú rótarhnúturinn okkar hægri undirtréshnútur, sama ferli mun gerast með þessum hnút og ferlið heldur áfram þar til allir vinstri hlutar verða að engu.

Aðferð til að fletja tvöfalda tré við Leetcode lausn á tengdum lista -

– Í fyrstu mun ég keyra lykkju þ.e. while(rót != null) þá mun ég taka tvær breytur og geyma vinstri undirtréð.

– mun þá athuga hvort hnúturinn sé lengst til hægri í vinstri undirtré með því að nota while(k.left != null) og mun tengja þann hnút við hægri undirtré með því að nota (k.right = root.right).

– tengdu síðan hægri bendilinn á rótarhnút við vinstri undirtré (root.right = vinstri) og stilltu vinstri bendilinn á rótarhnút sem null(root.left=null) og mun uppfæra með (rót = root.right ) þannig að nú er rót rétt undirtré hnút.

– þetta ferli mun halda áfram þar til allir vinstri undirtré hlutar verða hægri undirtré. Þess vegna mun tvíundartréð fletjast út.

 

Flettu tvöfalda tré við tengda lista LeetCode lausn

Flettu tvöfalda tré við tengda lista LeetCode lausn

Python lausn:

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

Java lausn:

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;
        }
    }
}

Tímaflæki: O(N)

Rýmisflókið: O (1)

Þar sem við höfum farið aðeins einu sinni yfir verður tímaflækjustigið o(n).

og þar sem við höfum ekki tekið neitt aukapláss verður flókið rými o(1) stöðugt aukarými.

Svipuð spurning - https://www.tutorialcup.com/interview/linked-list/flattening-linked-list.htm

Bæta við Two Numbers II Leetcode lausn

Vandamálayfirlýsing The Add Two Numbers II LeetCode Lausnin – „Add Two Numbers II“ segir að tveir ótómir tengdir listar tákna tvær óneikvæðar heiltölur þar sem mikilvægasti stafurinn kemur fyrst og hver hnút inniheldur nákvæmlega einn tölustaf. Við þurfum að leggja saman tölurnar tvær og skila summan sem …

Lesa meira

Daglegt hitastig Leetcode lausn

Vandamálsskýring Dagleg hitastig Leetcode Lausn: segir að gefið fylki heiltalna hitastig táknar daglegt hitastig, skilaðu fylkissvari þannig að svar[i] er fjöldi daga sem þú þarft að bíða eftir ída degi til að fá hlýrra hitastig. Ef það er enginn framtíðardagur sem þetta er mögulegt fyrir skaltu halda svari[i] == 0 í staðinn. …

Lesa meira

Lágmarksfjarlægja til að gera gildar sviga LeetCode lausn

Vandamálsyfirlýsing Lágmarksfjarlægja til að gera gildan sviga LeetCode Lausn – Þú færð streng með '(', ')' og lágstöfum enskum stöfum. Verkefni þitt er að fjarlægja lágmarksfjölda sviga ( '(' eða ')', í hvaða stöðum sem er) þannig að svigastrengurinn sem myndast sé …

Lesa meira

Trapping Rain Water Leetcode lausn

Vandamálslýsing The Trapping Rain Water LeetCode Lausnin – „Trapping Rain Water“ segir að miðað við fjölda hæða sem táknar hæðarkort þar sem breidd hverrar stiku er 1. Við þurfum að finna magn vatns sem er föst eftir rigningu. Dæmi: Inntak: hæð = [0,1,0,2,1,0,1,3,2,1,2,1] Úttak: 6 Útskýring: Athugaðu …

Lesa meira

Gildir sviga Leetcode lausn

Vandamálsyfirlýsing Gildir sviga LeetCode Lausn – “Gildir sviga” segir að þú færð streng sem inniheldur bara stafina '(', ')', '{', '}', '[' og ']'. Við þurfum að ákvarða hvort inntaksstrengurinn sé gildur strengur eða ekki. Sagt er að strengur sé gildur strengur ef opnum sviga verður að loka …

Lesa meira

Hámarks tíðni stafla Leetcode lausn

Vandamálsyfirlýsing Hámarkstíðnistafla LeetCode Lausn – „Hámarkstíðnistafla“ biður þig um að hanna tíðnistafla þar sem í hvert skipti sem við skjótum frumefni úr staflanum ætti það að skila þeim þætti sem er oftast til staðar í staflanum. Innleiða FreqStack flokkinn: FreqStack() smíðar tóman tíðnistafla. void push(int val) ýtir …

Lesa meira

Translate »