LeetCode Solution кашаасынын упайлары

Көйгөйдүн билдирүүсү Кашанын LeetCode Solution баллы мындай дейт: – Берилген тең салмактуу кашаа саптары s жана максималдуу баллды кайтарат. Теңдештирилген кашаа сабынын баллы төмөнкү эрежелерге негизделет: “()” 1 упайга ээ. ABда A+B упай бар, мында A жана B тең салмактуу кашаа саптары. (A) 2 * А упайга ээ, мында А – бул…

Толук маалымат

Binary Tree Inorder Traversal LeetCode Solution

Көйгөйдүн билдирүүсү: Binary Tree Inorder Traversal LeetCode чечими Бинардык дарактын тамырын эске алуу менен, анын түйүндөрдүн маанилеринин тартибин өтүүнү кайтарыңыз. 1-мисал: Киргизүү: root = [1,null,2,3] Чыгуу: [1,3,2] Мисал 2: Киргизүү: root = [] Чыгуу: [] 3-мисал: Киргизүү: root = [1] Чыгуу: [1] Чектөөлөр: түйүндөрдүн саны…

Толук маалымат

Decode String Leetcode Solution

Көйгөйдүн билдирүүсү Decode String LeetCode Solution – “Decode String” сизден коддолгон сапты коддон чыгарылган сапка айландырууну суранат. Коддоо эрежеси k[encoded_string] болуп саналат, мында төрт бурчтуу кашаанын ичиндеги коддолгон_сап так k жолу кайталанат, мында k оң бүтүн сан. Мисал: Киргизүү: s = ”3[a]2[bc]” Чыгуу: “aaabcbc”…

Толук маалымат

Бинардык даракты LeetCode чечими менен байланышкан тизмеге түздөө

Бинардык даракты LeetCode чечими менен байланышкан тизмеге түздөө мындай дейт - эске алуу менен root экилик дарактын, даракты "байланышкан тизмеге" түздөңүз:

  • "Шилтемеленген тизме" ошол эле колдонулушу керек TreeNode класс кайда right бала көрсөткүч тизмедеги кийинки түйүндү көрсөтөт жана left бала көрсөткүчү ар дайым null.
  • "Шилтемеленген тизме" бир эле тартипте болушу керек Алдын-ала буйрутма өтүү бинардык дарактын.

 

Мисал 1:

Бинардык даракты LeetCode чечими менен байланышкан тизмеге түздөөкиргизүү:

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

Output:

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

Мисал 2:

киргизүү:

 root = []

Output:

 []

Мисал 3:

киргизүү:

 root = [0]

Output:

 [0]

 

АЛГОРИТМ –

ИДЕЯ –

  • Бинардык даракты тегиздөө үчүн, биз адегенде сол астыңкы дарактын эң оң жагындагы элементин табабыз жана эң оң элементти алгандан кийин ошол түйүндүн оң көрсөткүчүн берилген дарактын оң астындагы дарагы менен байланыштырабыз.
  • 2-кадамда биз тамыр түйүнүнүн оң көрсөткүчүн сол-көп дарак менен байланыштырабыз жана сол-кичи даракты нөл катары орнотобуз.
  • 3-кадамда эми биздин тамыр түйүн оң-субстрак түйүн болуп саналат, ошол эле процесс бул түйүн менен болот жана процесс бардык сол бөлүктөрү нөл болгонго чейин улана берет.

Бинардык даракты бириктирилген тизмеге түздөө ыкмасы Leetcode чечими -

– Адегенде циклди иштетем, башкача айтканда while(root != null) андан кийин эки өзгөрмө алып, сол-кичи даракты сактайм.

– анда while(k.left != null) жардамы менен сол-кичи дарактын эң оң түйүнүнүн бар-жоктугун текшерет жана (k.right = root.right) жардамы менен ал түйүндү оң ички дарак менен байланыштырат.

– анда тамыр түйүнүнүн оң көрсөткүчүн сол ички дарак менен байланыштырыңыз (root.right = сол) жана тамыр түйүнүнүн сол көрсөткүчүн null (root.left=null) катары коюңуз жана ( root = root.right ) жаңыртыңыз, андыктан азыр тамыр туура. ички дарак түйүнү.

– бул процесс бардык сол-субка дарактын бөлүктөрү оң астынкы дарак болмоюнча уланат. Демек, бинардык дарак жалпак болуп калат.

 

Бинардык даракты LeetCode чечими менен байланышкан тизмеге түздөө

Бинардык даракты LeetCode чечими менен байланышкан тизмеге түздөө

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

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

Убакыт татаалдыгы: O(N)

Космостун татаалдыгы: O (1)

Биз бир гана жолу басып өткөндүктөн, убакыттын татаалдыгы o(n) болот.

жана биз эч кандай кошумча орун алган эмеспиз, мейкиндик татаалдыгы o(1) туруктуу кошумча мейкиндик болот.

Окшош суроо - https://www.tutorialcup.com/interview/linked-list/flattening-linked-list.htm

Эки Санды кошуу II Leetcode Solution

Көйгөйдүн билдирүүсү Эки санды кошуу II LeetCode чечими – “Эки Санды кошуу II” эки бош эмес шилтемеленген тизме эки терс эмес бүтүн сандарды билдирет, мында эң маанилүү цифра биринчи келет жана ар бир түйүн так бир цифраны камтыйт. Биз эки санды кошуп, сумманы кайтарышыбыз керек ...

Толук маалымат

Күнүмдүк температуралар Leetcode чечими

Көйгөйдүн билдирүүсү Күнүмдүк температуралар Leetcode Чечим: берилген бүтүн сандар массивиндеги температуралар күнүмдүк температураларды билдирерин айтат, жооп[i] - жылуураак температураны алуу үчүн i-күндөн кийин күтө турган күндөрдүн саны болгон массивдин жообун кайтарыңыз. Эгер бул мүмкүн боло турган келечектеги күн жок болсо, анын ордуна [i] == 0 жоопту калтырыңыз. …

Толук маалымат

Жарактуу кашааларды алуу үчүн минималдуу алып салуу LeetCode Solution

Көйгөйдүн билдирүүсү Жарактуу кашааларды алуу үчүн минималдуу алып салуу LeetCode Чечим – Сизге '(', ')' жана кичине англис тамгаларынан турган s сап берилет. Сиздин милдетиңиз кашаалардын минималдуу санын ('(' же ')', каалаган позицияларда) алып салуу, натыйжада кашаа саптары ...

Толук маалымат

Жамгыр суусун кармоо Leetcode чечими

Көйгөйдүн билдирүүсү Жамгыр суусун кармоочу LeetCode чечими – “Жамгыр суусун кармоо” бийиктиктердин массивинде ар бир тилкенин туурасы 1ге барабар бийиктик картасын көрсөткөнүн айтат. Биз жамгырдан кийин камалып калган суунун көлөмүн табышыбыз керек. Мисал: Киргизүү: бийиктик = [0,1,0,2,1,0,1,3,2,1,2,1] Чыгуу: 6 Түшүндүрмө: Текшерүү…

Толук маалымат

Жарактуу кашаалар Leetcode чечими

Көйгөйдүн билдирүүсү Жарактуу кашаалар LeetCode Чечим – “Жарамдуу кашаалар” сизге '(', ')', '{', '}', '[' жана ']' символдорун камтыган сап берилгенин айтат. Киргизилген сап жарактуу сап экендигин аныкташыбыз керек. Ачык кашаалар жабылышы керек болсо, сап жарактуу сап деп айтылат ...

Толук маалымат

Максималдуу Frequency Stack Leetcode чечими

Көйгөйдүн билдирүүсү Максималдуу жыштык стекти LeetCode чечими - "Максималдуу жыштык стек" сизден жыштык стекин иштеп чыгууну суранат, анда биз стектен элементти чыгарган сайын, ал стектеги эң көп кездешкен элементти кайтарып бериши керек. FreqStack классын ишке ашыруу: FreqStack() бош жыштык стегин курат. void push (int val) түртүү…

Толук маалымат

Translate »