قوسین LeetCode حل کا اسکور

مسئلہ کا بیان قوسین کا سکور LeetCode سلوشن کہتا ہے – ایک متوازن قوسین کے سٹرنگ کو دیکھتے ہوئے اور زیادہ سے زیادہ سکور لوٹائیں۔ متوازن قوسین کی تار کا اسکور درج ذیل اصولوں پر مبنی ہے: "()" کا سکور 1 ہے۔ AB کا سکور A + B ہے، جہاں A اور B متوازن قوسین کے تار ہیں۔ (A) کا سکور 2 * A ہے، جہاں A ہے…

مزید پڑھ

Binary Tree Inorder Traversal LeetCode حل

مسئلہ بیان: Binary Tree Inorder Traversal LeetCode سلوشن بائنری ٹری کی جڑ کو دیکھتے ہوئے، اس کے نوڈس کی قدروں کا اندرونی ٹراورسل لوٹائیں۔ مثال 1: ان پٹ: جڑ = [1,null,2,3] آؤٹ پٹ: [1,3,2] مثال 2: ان پٹ: جڑ = [] آؤٹ پٹ: [] مثال 3: ان پٹ: جڑ = [1] آؤٹ پٹ: [1] رکاوٹیں: نوڈس کی تعداد…

مزید پڑھ

ڈی کوڈ سٹرنگ لیٹ کوڈ حل

مسئلہ کا بیان ڈی کوڈ سٹرنگ لیٹ کوڈ حل - "ڈی کوڈ سٹرنگ" آپ سے انکوڈ شدہ سٹرنگ کو ڈی کوڈ سٹرنگ میں تبدیل کرنے کو کہتا ہے۔ انکوڈنگ کا اصول k[encoded_string] ہے، جہاں مربع بریکٹ کے اندر encoded_string کو بالکل k بار دہرایا جا رہا ہے جہاں k ایک مثبت عدد ہے۔ مثال: ان پٹ: s = "3[a]2[bc]" آؤٹ پٹ: "aaabcbc" …

مزید پڑھ

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔ کہتے ہیں کہ - دی گئی root بائنری درخت کے، درخت کو ایک "منسلک فہرست" میں چپٹا کریں:

  • "منسلک فہرست" کو وہی استعمال کرنا چاہئے۔ TreeNode کلاس جہاں right چائلڈ پوائنٹر فہرست میں اگلے نوڈ کی طرف اشارہ کرتا ہے۔ left چائلڈ پوائنٹر ہمیشہ ہوتا ہے۔ null.
  • "منسلک فہرست" اسی ترتیب میں ہونی چاہیے جس طرح a پری آرڈر گزرنے والا بائنری درخت کے.

 

مثال 1:

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔ان پٹ:

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

: پیداوار

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

مثال 2:

ان پٹ:

 root = []

: پیداوار

 []

مثال 3:

ان پٹ:

 root = [0]

: پیداوار

 [0]

 

الگورتھم -

آئیڈیا -

  • بائنری ٹری کو چپٹا کرنے کے لیے، ہم سب سے پہلے بائیں سب ٹری کا سب سے دائیں عنصر تلاش کریں گے اور سب سے دائیں عنصر حاصل کرنے کے بعد ہم اس نوڈ کے دائیں پوائنٹر کو دیئے گئے درخت کے دائیں ذیلی درخت سے جوڑیں گے۔
  • مرحلہ 2 میں ہم روٹ نوڈ کے دائیں پوائنٹر کو لیفٹ سب ٹری سے جوڑیں گے اور لیفٹ سب ٹری کو null کے طور پر سیٹ کریں گے۔
  • مرحلہ 3 میں اب ہمارا روٹ نوڈ ایک رائٹ سب ٹری نوڈ ہے یہی عمل اس نوڈ کے ساتھ ہوگا اور یہ عمل تب تک جاری رہے گا جب تک کہ بائیں جانب کے تمام حصے کالعدم نہ ہوجائیں۔

لنکڈ لسٹ لیٹ کوڈ حل کے لیے فلیٹ بائنری ٹری کے لیے اپروچ -

- سب سے پہلے، میں ایک لوپ چلاوں گا یعنی while(root!= null) پھر دو ویری ایبلز لے کر لیفٹ سب ٹری کو اسٹور کروں گا۔

- پھر while(k.left != null) کا استعمال کرکے بائیں سب ٹری کے سب سے دائیں نوڈ کو چیک کرے گا اور (k.right = root.right) کا استعمال کرتے ہوئے اس نوڈ کو دائیں سب ٹری سے جوڑ دے گا۔

- پھر روٹ نوڈ کے دائیں پوائنٹر کو بائیں سب ٹری (root.right = بائیں) کے ساتھ جوڑیں اور روٹ نوڈ کے بائیں پوائنٹر کو null(root.left=null) کے طور پر سیٹ کریں اور (root = root.right) سے اپ ڈیٹ ہوجائے گا لہذا اب روٹ صحیح ہے۔ ذیلی درخت نوڈ.

- یہ عمل اس وقت تک جاری رہے گا جب تک کہ بائیں ذیلی درخت کے تمام حصے دائیں ذیلی درخت نہ بن جائیں۔ لہذا، بائنری درخت چپٹا ہو جائے گا.

 

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔

بائنری ٹری کو لنکڈ لسٹ لیٹ کوڈ حل کے ساتھ چپٹا کریں۔

ازگر کا حل:

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

جاوا حل:

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 لیٹ کوڈ حل شامل کریں۔

مسئلہ کا بیان دو نمبرز شامل کریں II LeetCode حل - "دو نمبرز II شامل کریں" کہتا ہے کہ دو غیر خالی منسلک فہرستیں دو غیر منفی عدد کی نمائندگی کرتی ہیں جہاں سب سے اہم ہندسہ پہلے آتا ہے اور ہر نوڈ میں بالکل ایک ہندسہ ہوتا ہے۔ ہمیں دو نمبروں کو شامل کرنے اور رقم کو واپس کرنے کی ضرورت ہے ...

مزید پڑھ

روزانہ درجہ حرارت Leetcode حل

مسئلہ کا بیان روزانہ درجہ حرارت لیٹ کوڈ حل: یہ بتاتا ہے کہ عددی درجہ حرارت کی ایک صف دی گئی ہے جو روزانہ درجہ حرارت کی نمائندگی کرتا ہے، ایک صف کا جواب لوٹائیں اس طرح کہ جواب[i] وہ دنوں کی تعداد ہے جو آپ کو گرم درجہ حرارت حاصل کرنے کے لیے ith دن کے بعد انتظار کرنا پڑتا ہے۔ اگر مستقبل میں کوئی ایسا دن نہیں ہے جس کے لیے یہ ممکن ہو تو جواب[i] == 0 رکھیں۔ …

مزید پڑھ

درست قوسین LeetCode حل بنانے کے لیے کم از کم ہٹا دیں۔

مسئلہ کا بیان درست قوسین بنانے کے لیے کم از کم ہٹائیں LeetCode حل – آپ کو '(', ')' اور چھوٹے انگریزی حروف کی ایک سٹرنگ دی جاتی ہے۔ آپ کا کام قوسین کی کم از کم تعداد کو ہٹانا ہے ( '(' یا ')'، کسی بھی پوزیشن میں ) تاکہ نتیجے میں قوسین کی تار …

مزید پڑھ

ٹریپنگ رین واٹر لیٹکوڈ حل

مسئلہ کا بیان The Trapping Rain Water LeetCode Solution - "Trapping Rain Water" میں کہا گیا ہے کہ اونچائیوں کی ایک صف دی گئی ہے جو ایک بلندی کے نقشے کی نمائندگی کرتی ہے جہاں ہر بار کی چوڑائی 1 ہے۔ ہمیں بارش کے بعد پھنسے ہوئے پانی کی مقدار معلوم کرنے کی ضرورت ہے۔ مثال: ان پٹ: اونچائی = [0,1,0,2,1,0,1,3,2,1,2,1] آؤٹ پٹ: 6 وضاحت: چیک کریں …

مزید پڑھ

درست قوسین لیٹ کوڈ حل

مسئلہ کا بیان درست قوسین LeetCode حل - "درست قوسین" یہ بتاتا ہے کہ آپ کو صرف '(',')'، '{'، '}'، '[' اور ']' حروف پر مشتمل ایک تار دیا گیا ہے۔ ہمیں یہ تعین کرنے کی ضرورت ہے کہ آیا ان پٹ سٹرنگ ایک درست سٹرنگ ہے یا نہیں۔ ایک سٹرنگ کو درست سٹرنگ کہا جاتا ہے اگر کھلی بریکٹ کو بند کرنا ضروری ہے…

مزید پڑھ

زیادہ سے زیادہ فریکوئینسی اسٹیک لیٹ کوڈ حل

مسئلہ کا بیان زیادہ سے زیادہ فریکوئنسی اسٹیک LeetCode حل - "زیادہ سے زیادہ فریکوئنسی اسٹیک" آپ سے فریکوئنسی اسٹیک ڈیزائن کرنے کو کہتا ہے جس میں جب بھی ہم اسٹیک سے کسی عنصر کو پاپ کرتے ہیں، تو اسے اسٹیک میں موجود سب سے زیادہ بار بار عنصر کو لوٹانا چاہیے۔ FreqStack کلاس کو لاگو کریں: FreqStack() ایک خالی فریکوئنسی اسٹیک بناتا ہے۔ void push (int val) pushes…

مزید پڑھ

Translate »