مواد جي جدول[لڪ][ڏسو]
- 1. توهان هڪ Array جي وضاحت ڪيئن ڪندا آهيو؟
- 2. Dynamic Arrays: اھي ڇا آھن؟ ڇا انھن کي بنيادي Arrays کان ڌار ڪري ٿو؟
- 3. هڪ صف ۽ لغت ڪيئن هڪ ٻئي کان مختلف آهن؟
- 4. صفن جي فائدن ۽ نقصانن مان ڪجھ لسٽ ڪريو.
- 5. ”اسپارس ايري“ کي ڇا چوندا آهن؟
- 6. توھان ڪڏھن چونڊيندا ھڪ جڙيل لسٽ ھڪ صف تي؟
- 7. ڇا هڪ انڊيڪس ڪيل صف کي هڪ ايسوسيئيٽو صف کان ڌار ڪري ٿو؟
- 8. ترتيب ڏنل صفن ۾ هيپ جا ڪهڙا فائدا آهن؟
- 9. ڇا اسان صف جي سائيز کي منفي طور بيان ڪري سگھون ٿا؟
- 10. توهان 1 کان 100-عنصر جي صف ۾ غائب انٽيجر کي ڪيئن ڳوليندا آهيو؟
- 11. توهان ڪيئن ڳوليندا آهيو هڪ عنصر جي انڊيڪس هڪ صف ۾؟
- 12. توھان ڪيئن حاصل ڪري سگھوٿا ھڪڙي مخصوص عنصر کي ھڪڙي صف مان؟
- 13. ٻن صفن جي برابري جي تصديق ڪيئن ٿي سگھي ٿي؟
- 14. جڏهن اسان arrays تي بحث ڪريون ٿا، ته ”طول“ ۽ ”سب اسڪرپٽ“ جي جملن مان توهان جو ڇا مطلب آهي؟
- ڪوڊنگ انٽرويو سوال
- 15. ھڪڙي جوڙي کي ھڪڙي صف ۾ ڳولھيو جنھن ۾ مخصوص رقم آھي
- 16. لڪير واري وقت سان بائنري صف ترتيب ڏيڻ
- 17. هڪ صف ۾ سڀ کان وڏي ٻه-انٽ پراڊڪٽ ڳوليو.
- 18. سڀني صفن جي زيرو کي آخر ۾ ڪيئن منتقل ڪجي
- 19. ٻن داخلن سان هڪ صف کي ڪيئن ترتيب ڏيو جيڪي هڪ آپريشن ۾ تبديل ٿيل آهن.
- 20. جڳه ۾ ٻه ترتيب ڏنل صفن کي ڪيئن گڏ ڪجي.
- 21. اعلي ۽ گهٽ پوزيشن کي متبادل ڪرڻ ۾ شيون جي هڪ صف کي ڪيئن ترتيب ڏيڻ؟
- 22. صف ۾ هر عنصر جي پيداوار سان ڊويزن آپريٽر استعمال ڪرڻ کان سواءِ هڪ صف جي هر عنصر کي ڪيئن متبادل بڻايو وڃي؟
- 23. logarithmic time ۾ هڪ صف ۾ سڀ کان عجيب عنصر ڳوليو
- 24. هڪ سرڪيولر صف ۾ هر عنصر لاءِ ايندڙ وڏو عنصر ڪيئن حاصل ڪجي؟
- 25. ڳولھيو ھڪ صف جي ڦيري جي ڳڻپ؟
- 26. برسات جي پاڻيءَ جي ڇڪڻ جو مسئلو ڇا آهي؟
- ٿڪل
ڪوڊنگ انٽرويو ۾ DSA سوالن جو هڪ سلسلو شامل آهي. جيڪڏهن توهان FAANG يا ڪنهن ٻئي ٽائر-1 ٽيڪني ڪاروبار سان توهان جي ايندڙ ٽيڪچ انٽرويو لاءِ تيار ٿي رهيا آهيو ته توهان کي صفن سان مهارت حاصل ڪرڻ گهرجي.
اڪثر ڪوڊنگ انٽرويوز ۾، اهو ٻئي نمبر تي اچي ٿو Strings. هڪ صف لاڳاپيل ڊيٽا عناصر جو هڪ گروپ آهي جيڪو ميموري ۾ هڪ ٻئي جي ويجهو رکيل آهي.
جيئن ته اهي سڀئي پروگرامنگ ٻولين سان ڳنڍيل آهن، جهڙوڪ سي، سي ++، جاوا، پٿون، پرل، ۽ روبي، اهي هر جڳهه آهن. ڪجهه مشق ڪوڊنگ چئلينجز ۽ انٽرويو سوالن ۽ جوابن لاءِ پڙهڻ جاري رکو صفن جي بنياد تي.
پائٿون استعمال ڪيو ويندو ھن پوسٽ ۾ ڪوڊنگ جي مسئلن کي حل ڪرڻ لاءِ ڇاڪاڻ ته اھو استعمال ڪرڻ آسان آھي، سمجھڻ، ۽ اسان مان گھڻن کي واقف ھئڻ گھرجي.
اچو ته شروع ڪريون.
1. توهان هڪ Array جي وضاحت ڪيئن ڪندا آهيو؟
- لاڳاپيل ڊيٽا جي قسمن جو هڪ گروپ هڪ صف آهي.
- صفون هميشه مقرر آهن.
- ساڳئي قسم جو متغير ڪيترن ئي هنڌن تي صفن جي شين جي ذريعي ذخيرو ٿيل آهي.
- Primitive قسم ۽ اعتراض جو حوالو ٻئي ان سان ٺهڪندڙ آهن.
2. Dynamic Arrays: اھي ڇا آھن؟ ڇا انھن کي بنيادي Arrays کان ڌار ڪري ٿو؟
خودڪار اسڪيلنگ جيڪا متحرڪ صفن (جنهن کي پڻ حوالو ڏنو ويو آهي ترقي پذير صفن، ريزيبل ايري، تبديل ٿيندڙ صفون، يا جاوا ۾ ArrayLists) هڪ اهم فائدو آهي.
توھان کي ھميشه ڄاڻڻ گھرجي ته توھان جي سرن جا ڪيترا عنصر اڳ ۾ ذخيرو ڪندا ڇو ته صفن جي ھڪڙي مقرر ٿيل سائيز آھي. هڪ متحرڪ صف، ٻئي طرف، وڌندي آهي جيئن توهان ان ۾ اضافي ميمبرن کي شامل ڪندا آهيو، تنهنڪري توهان کي پهريان کان ان جي صحيح سائيز کي ڄاڻڻ جي ضرورت ناهي.
3. هڪ صف ۽ لغت ڪيئن هڪ ٻئي کان مختلف آهن؟
هي انٽرويو سوالن جو هڪ بنيادي بنيادن تي ٻڌل آهي جيڪي باقاعده پڇيا ويندا آهن. هيٺيون صفون ۽ لغتن جي وچ ۾ اهم فرق آهن:
- هڪ صف آهي هڪ ترتيب ڏنل فهرستن جي ساڳئي شين جي. ڊڪشنري، ٻئي طرف، اهم-قدر جوڙو آهي.
- صفن جي سائيز متحرڪ طور تي تبديل ٿي سگھي ٿي. اهڙا متحرڪ خيال لغتن ۾ موجود ناهن.
- هڪ صف کي استعمال ڪرڻ کان اڳ، ان جي سائيز کي بيان ڪيو وڃي. ڊڪشنري سائيز کي ترتيب ڏيڻ جي ضرورت ناهي.
- ريڊيم بيان استعمال ڪريو جيڪڏھن توھان چاھيو ٿا صف جي سائيز کي وڌائڻ. لغات ۾، هڪ عنصر بغير اعلان جي شامل ڪري سگھجي ٿو.
4. صفن جي فائدن ۽ نقصانن مان ڪجھ لسٽ ڪريو.
فائدن:
- Arrays هڪ ئي وقت ڪيترن ئي عنصرن کي ترتيب ڏئي سگھن ٿا.
- ٻيو ڊيٽا جو بناوت، جهڙوڪ اسٽيڪ، قطار، ڳنڍيل لسٽون، وڻ، گراف، وغيره، هڪ صف ۾ لاڳو ٿي سگهن ٿا.
- هڪ انڊيڪس استعمال ڪري سگهجي ٿو هڪ صف جي هڪ عنصر تائين پهچڻ لاء.
وڌڻ:
- هڪ صف جي سائيز اڳ ۾ اعلان ڪيو وڃي. صف جي اعلان جي وقت تي، اسان شايد نه ٿي سگهون، جيتوڻيڪ، اسان کي گهربل سائيز کان واقف ٿي سگهون ٿا.
- صف جي جوڙجڪ جامد آهي. اهو مطلب آهي ته صف جي سائيز هميشه مقرر ڪئي وئي آهي ۽ ياداشت مختص نه ٿي سگهي ٿي وڌائي يا گهٽائي.
5. ”اسپارس ايري“ کي ڇا چوندا آهن؟
هڪ اسپارس سري هڪ ڊيٽا سر آهي جنهن ۾ صفر جي قيمتن سان تمام گهڻيون داخلون هونديون آهن. ان جي ابتڙ، هڪ گھڻائي صف ۾ شامل آهي ان جي اڪثريت شيون غير صفر قدرن سان. اسپارس ايري جا انڊيڪس، جيڪي انگن کي شئي ۾ تبديل ڪن ٿا، ان ۾ خال شامل ٿي سگھي ٿو. HashMap جي مقابلي ۾، اهي وڌيڪ ياداشت وارا آهن.
6. توھان ڪڏھن چونڊيندا ھڪ جڙيل لسٽ ھڪ صف تي؟
جڏهن صفن جي بدران ڳنڍيل فهرستن کي استعمال ڪندي، غور ڪريو:
- توهان کي بي ترتيب رسائي حاصل ڪرڻ لاءِ ڪنهن به عنصر جي ضرورت ناهي.
- جتي عارضي اڳڪٿي ضروري آهي، توهان کي لسٽ مان مسلسل وقت جي اندراج ۽ هٽائڻ جي ضرورت آهي.
- ترجيحي قطار ٺاھڻ لاءِ، توھان کي لسٽ جي مرڪز ۾ شيون رکڻ جي ضرورت پوندي.
- توهان کي خبر ناهي ته لسٽ ڪيتري ڊگهي ٿيندي. جيڪڏهن صف جي سائيز وڌي ٿي، توهان کي ٻيهر بيان ڪرڻ گهرجي ۽ ميموري کي نقل ڪرڻ گهرجي، جهڙوڪ سادي صفن سان.
7. ڇا هڪ انڊيڪس ڪيل صف کي هڪ ايسوسيئيٽو صف کان ڌار ڪري ٿو؟
بنيادي تفاوت associative ۽ indexed arrays جي وچ ۾ ھيٺ ڏنل جدول ۾ درج ٿيل آھن.
- هڪ اهم-قدر جوڙو متن يا عددي شڪل ۾ استعمال ڪيو ويندو آهي هڪ ايسوسيئيٽو صف کي ترتيب ڏيڻ لاءِ. انڊيڪس ڪيل صف جون ڪنجيون سڀ عددي آهن، ۽ هر ڪنجي هڪ الڳ قدر سان ڳنڍيل آهي.
- هڪ تنظيمي صف ۾، اهم هڪ تار ٿي سگهي ٿو. 0 کان شروع ٿيندڙ انٽيجر ڪيز سان ترتيب ڏنل صف.
- هڪ ٻه-ڪالمن ٽيبل هڪ اتحادي صف جي رويي کي نقل ڪري ٿو. ھڪڙي ھڪڙي ڪالمن واري جدول سان ملندڙ جلندڙ صفون آھن.
- نقشا هڪ ايسوسيئيٽ ايري قسم آهن. هڪ انڊيڪس صف هڪ نقشو نه آهي.
8. ترتيب ڏنل صفن ۾ هيپ جا ڪهڙا فائدا آهن؟
Heap oversorted Arrays کي استعمال ڪرڻ جي وقت جي ڪارڪردگي اهم فائدو آهي. جڏهن ته هيپ آپريشن تيز ٿين ٿا، هڪ صف کي ترتيب ڏيڻ تمام گهڻو وقت جي ضرورت آهي. هڪ هيپ تمام ننڍڙو عنصر دريافت ڪري سگهي ٿو ان کان به وڌيڪ تيزيءَ سان هڪ صف کي ترتيب ڏئي سگهجي ٿو.
انگن جو هڪ ڏنل مجموعو ترتيب ڏئي سگهجي ٿو ٻن طريقن مان ترتيب ڏنل ترتيبن کي استعمال ڪندي. ٻئي طرف، انگن جي ڏنل مجموعن لاءِ، ٿي سگهي ٿو هڪ کان وڌيڪ امڪاني هيپ.
9. ڇا اسان صف جي سائيز کي منفي طور بيان ڪري سگھون ٿا؟
نه، اسان هڪ ناڪاري عدد جي وضاحت نٿا ڪري سگھون ته هڪ صف جي سائيز. جيڪڏهن اسان اعلان ڪريون ته گڏ ڪرڻ واري وقت جي غلطي نه ٿيندي. رن ٽائم تي، اسان کي، بهرحال، هڪ NegativeArraySizeException سان منهن ڏيڻو پوندو.
10. توهان 1 کان 100-عنصر جي صف ۾ غائب انٽيجر کي ڪيئن ڳوليندا آهيو؟
سيريز جو مجموعو هيٺين فنڪشن کي لاڳو ڪندي ڳڻي سگهجي ٿو: n (n + 1) / 2
صرف ان صورت ۾ جيڪڏهن صف ۾ ڪو به نقل نه هجي يا هڪ کان وڌيڪ انٽيجر موجود نه هجي ته هي فنڪشن هلندي. ڇا هڪ صف ۾ نقلي عنصر آهن، توهان صف کي ترتيب ڏئي سگهو ٿا ته ڏسو ته ڇا اهڙا عنصر آهن جيڪي برابر آهن.
11. توهان ڪيئن ڳوليندا آهيو هڪ عنصر جي انڊيڪس هڪ صف ۾؟
هڪ عنصر جي انڊيڪس هڪ لڪير يا بائنري ڳولا ذريعي ڳولي سگهجي ٿو. جيستائين اهو گهربل عنصر جي ميچ کي ڳولي ٿو، هڪ لڪير ڳولا فنڪشن هر هڪ صف ۾ هر عنصر مٿان ڦري ٿو. اهو انڊيڪس واپس ڪري ٿو جڏهن اهو ملندڙ عنصر کي ڳولي ٿو. نتيجي طور، لڪير جي ڳولا جي عارضي پيچيدگي O. (n) آهي. ٻئي ترتيب ڏنل ۽ اڻ ترتيب ڏنل صف لڪير ڳولا استعمال ڪري سگھن ٿا.
هڪ بائنري ڳولا استعمال ڪندي، جيڪا مسلسل قطار کي اڌ ۾ ورهائي ٿي جيستائين وقفي جي وچين گهربل عنصر سان ملائي ۽ انڊيڪس مهيا ڪري، توهان عنصر جي انڊيڪس حاصل ڪري سگهو ٿا جيڪڏهن صف ترتيب ڏنل آهي. نتيجي طور، بائنري ڳولا جي عارضي پيچيدگي O. (log n) آهي.
12. توھان ڪيئن حاصل ڪري سگھوٿا ھڪڙي مخصوص عنصر کي ھڪڙي صف مان؟
جيئن ته توهان اصل صفن مان عناصر کي صرف حذف نٿا ڪري سگهو ڇاڪاڻ ته اهي مقرر ڪيل سائيز سان مقرر ٿيل آهن، انٽرويو وٺندڙ توهان لاءِ ڳولي رهيو آهي ته هڪ مختلف طريقي جو مشورو ڏيو ۽ انهي مسئلي سان معاملو ڪيو جيڪو سوال اٿاري ٿو. عمل جو بهترين طريقو اهو آهي ته هڪ عنصر کي ختم ڪرڻ لاء نئين صف ٺاهڻ. توھان ھن صف ۾ پھرين صفن مان عناصر کي نقل ڪري سگھو ٿا ۽ صرف اھو عنصر شامل ڪريو جيڪو توھان ختم ڪرڻ چاھيو ٿا.
هڪ ٻي حڪمت عملي ۾ شامل آهي ٽارگيٽ عنصر کي صف ۾ ڳولڻ ۽ پوءِ انهن سڀني شين جي ترتيب کي ريورس ڪرڻ جيڪي ٽارگيٽ عنصر جي ساڄي پاسي آهن.
13. ٻن صفن جي برابري جي تصديق ڪيئن ٿي سگھي ٿي؟
توهان کي پهريان ٻن مهيا ڪيل صفن جي ڊيگهه جي تصديق ڪرڻ گهرجي. ٻنهي صفن جي ملندڙ شين جو مقابلو ڪيو وڃي ٿو جڏهن انهن جي ڊيگهه برابر آهي. ٻن صفن کي برابر سمجهيو ويندو. جيڪڏهن هر هڪ جوڙو اجزاء جي هر خط ۾ برابر آهي. اهو طريقو ٻن صفن جي برابري کي جانچڻ جي صلاح نه ڏني وئي آهي جيڪڏهن صفون سائيز ۾ وڏيون آهن ڇو ته اهو گهڻو وقت وٺندو. توھان پڻ استعمال ڪري سگھو ٿا equals() طريقو جيڪو Arrays ڪلاس ۾ شامل آھي، جيتوڻيڪ، جيڪڏھن انٽرويو وٺندڙ توھان کان پڇي ته ٻن صفن جو مقابلو ڪرڻ کان سواءِ بلٽ ان طريقن کي استعمال ڪرڻ، اھو طريقو ڪارآمد ٿيندو.
14. جڏهن اسان arrays تي بحث ڪريون ٿا، ته ”طول“ ۽ ”سب اسڪرپٽ“ جي جملن مان توهان جو ڇا مطلب آهي؟
هڪ صف جو "طول" آهي انگن اکرن جو تعداد، يا سبسڪرپشن، هر فرد جي ميمبر کي سڃاڻڻ جي ضرورت آهي. سبسڪرپشن ۽ طول و عرض غير واضح ٿي سگھي ٿو. هڪ طول و عرض آهي اجازت ڏنل ڪنجين جي حد جي وضاحت، جڏهن ته سبسڪرپٽ هڪ نمبر آهي. هر صف جي طول و عرض لاء صرف هڪ سبسڪرپشن گهربل آهي.
مثال طور، array arr[10][5] جا ٻه طول و عرض آهن. ھڪڙي تي 10 ۽ ٻئي تي 5 سائز. ان جي اجزاء کي پتو ڏيڻ لاء، توھان کي ٻن سبسڪرپشن جي ضرورت آھي. ٻئي 0 ۽ 4 جي وچ ۾ آهن. ھڪڙو 0 ۽ 9 جي وچ ۾، شامل آھي.
ڪوڊنگ انٽرويو سوال
15. ھڪڙي جوڙي کي ھڪڙي صف ۾ ڳولھيو جنھن ۾ مخصوص رقم آھي
مثال طور،
انٽرويو
- نمبر = [8، 7، 2، 5، 3، 1]
- ھدف = 10
پيداوار:
- جوڙو مليو (8, 2)
- Or
- جوڙو مليو (7, 3)
انٽرويو
- نمبر = [5، 2، 6، 8، 1، 9]
- ھدف = 12
پيداوار:
- جوڙو نه مليو
16. لڪير واري وقت سان بائنري صف ترتيب ڏيڻ
لڪير واري وقت ۽ مقرر ٿيل علائقي ۾ بائنري صف کي ترتيب ڏيو. ٻاھر نڪرڻ گھرجي سڀ کان پھريان سڀ صفر، پوءِ سڀ.
مثال طور،
- ان پٽ: { 1, 0, 1, 0, 1, 0, 0, 1 }
- ٻاھر نڪتو: { 0, 0, 0, 0, 1, 1, 1, 1 }
هڪ سڌو طريقو اهو هوندو ته صف جي ڪل انگ کي ڳڻيو وڃي 0s، چئو k، ۽ پوءِ صف ۾ پهرين k انڊيڪس کي 0s سان ڀريو ۽ باقي انڊيڪس کي 1 سان. متبادل طور، اسان حساب ڪري سگهون ٿا ته مجموعي ۾ ڪيترا 1s آهن. صف k، صف ۾ آخري k انڊيڪس کي 1 سان ڀريو، ۽ باقي انڊيڪس کي 0 سان ڀريو.
ڏنل طريقي سان O (n) وقت جي پيچيدگي آهي ۽ ڪو به اضافي اسٽوريج استعمال نٿو ڪري، جتي n ان پٽ جي سائيز آهي.
17. هڪ صف ۾ سڀ کان وڏي ٻه-انٽ پراڊڪٽ ڳوليو.
انٽيجر ايري ۾ ٻن انگن جي سڀ کان وڏي پيداوار ڳولھيو.
هڪ مثال طور 10 3 5 6 2 صف جي باري ۾ سوچيو. (-10، -3) يا (5، 6) جوڙو سڀ کان وڌيڪ پيداوار آهي.
هر عنصر جي ميلاپ جي باري ۾ سوچڻ ۽ انهن جي پيداوار جو اندازو لڳائڻ هڪ بيوقوف طريقو آهي. جيڪڏهن موجوده جوڙي جي پيداوار هن وقت تائين حاصل ڪيل وڌ کان وڌ پيداوار کان وڏي آهي، وڌ ۾ وڌ پيداوار کي اپڊيٽ ڪريو. آخري پراڊڪٽ جي اجزاء کي پرنٽ ڪريو.
مٿيون حل، جتي n ان پٽ جي مقدار آهي، او (n2) جي وقت جي پيچيدگي آهي ۽ وڌيڪ جاء نه وٺندو آهي.
18. سڀني صفن جي زيرو کي آخر ۾ ڪيئن منتقل ڪجي
سڀني صفرن کي انٽيجر صف ۾ آخر تائين منتقل ڪريو. جواب کي مسلسل اسپيس استعمال ڪرڻ کان پاسو ڪرڻ گهرجي ۽ صف جي اجزاء جي لاڳاپي واري ترتيب کي محفوظ ڪرڻ گهرجي.
داخل ٿيل: {1,2,3,0,8,0,4,7،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX،XNUMX}
ٻاھر ٿيندو {1,2,3,8,4,7,0,0}
عنصر کي ھيٺئين دستياب پوزيشن ۾ رکو ته صف ۾ جيڪڏھن موجوده عنصر صفر نه آھي. 0 سان گڏ سڀئي باقي انڊيڪس ڀريو هڪ ڀيرو ايري جون شيون سڀ پروسيس ڪيون ويون آهن.
اڳئين حل ۾ O (n) وقت جي پيچيدگي آهي، جتي n ان پٽ جي سائيز آهي.
19. ٻن داخلن سان هڪ صف کي ڪيئن ترتيب ڏيو جيڪي هڪ آپريشن ۾ تبديل ٿيل آهن.
لڪير واري وقت ۾ ترتيب ڏيو ٻن تبديل ٿيل شيون ڏنيون ۽ ھڪڙي ترتيب سان ان جي سڀني عناصر سان گڏ ترتيب ڏنل ترتيب سان. فرض ڪريو ته صف ۾ ڪوبه نقل نه آهي.
ان پٽ: = [1,9,3,4,7,2] or [9,3,7,2,1,4] or [2,4,1,7,3,9]
ٻاھر نڪتو: = [1,2,3,4,7,9]
صف ۾ ٻئي عنصر سان شروع ڪندي، مقصد هر عنصر کي ان جي اڳوڻن سان ڀيٽ ڪرڻ آهي. تڪرار جي پوزيشن کي محفوظ ڪيو ويندو آهي ٻه پوائنٽر کڻڻ سان، x، ۽ y.
تازه ڪاري x کي پوئين عنصر جي انڊيڪس ۾ ۽ y کي موجوده عنصر جي انڊيڪس ۾ جيڪڏھن اڳئين کان وڏو آھي. y کي موجوده عنصر جي انڊيڪس ۾ تازه ڪاري ڪريو جيڪڏھن اھو نڪتو ته پوئين عنصر موجوده عنصر کان وڏو آھي.
آخرڪار، عناصر کي تبديل ڪريو انڊيڪس x ۽ y تي هڪ دفعو اسان مڪمل ڪيو آهي هر هڪ ڀرسان عناصر جي پروسيسنگ کي.
انهي حقيقت جي ڪري ته مٿي بيان ڪيل طريقو صرف هڪ اسڪين کي انجام ڏئي ٿو ان پٽ جي سائيز n جو، ان جي وقت جي پيچيدگي O (n) آهي. حل لاء اضافي ڪمري جي ضرورت ناهي.
20. جڳه ۾ ٻه ترتيب ڏنل صفن کي ڪيئن گڏ ڪجي.
ترتيب ڏنل ترتيب کي برقرار رکڻ سان، X[] ۽ Y[] جي ترتيبن جي شين کي ضم ڪريو - سائيز جي ٻن ترتيبن وارا صفون m ۽ n - ترتيب ڏنل ترتيب کي برقرار رکڻ سان، يعني، X[] کي پھرين m ننڍن عنصرن سان ڀرڻ ۽ Y[] کي ڀرڻ سان. باقي عناصر.
جيڪڏهن صف ۾ هڪ عنصر X[] اڳ ۾ ئي صحيح پوزيشن تي آهي (يعني، جيڪو باقي عناصرن مان ننڍڙو آهي)، ان کي نظرانداز ڪريو؛ ٻي صورت ۾، ان کي ننڍڙو عنصر سان تبديل ڪريو، جيڪو پڻ Y[] جو پھريون ميمبر آھي. ادل بدلڻ کان پوءِ ترتيب ڏنل ترتيب کي برقرار رکڻ لاءِ، عنصر کي منتقل ڪريو (هاڻي Y[0] تي) ان جي مناسب جاءِ تي Y[].
پهرين صف جي سائيز m آهي ۽ ٻي صف جي سائيز n آهي، ۽ وقت جي پيچيدگي O (mn) آهي.
21. اعلي ۽ گهٽ پوزيشن کي متبادل ڪرڻ ۾ شيون جي هڪ صف کي ڪيئن ترتيب ڏيڻ؟
انٽيجر ايري کي ترتيب ڏيو ته جيئن هر ايندڙ ميمبر اڳئين ۽ هيٺين عناصر کان وڏو هجي. فرض ڪريو صف ۾ ڪو به نقلي عنصر شامل نه آهي.
صف کي ترتيب ڏيڻ يا اضافي جاء کي استعمال ڪرڻ ضروري نه آهي مؤثر طريقي سان. منصوبو آهي، شروع ڪرڻ سان، صف جو ٻيو ميمبر ۽ هر لوپ جي ورهاڱي لاء ٻه طرف وڌو.
اجزاء کي تبديل ڪريو جيڪڏهن آخري عنصر پهرين کان وڌيڪ آهي. ساڳئي رڳ ۾، ٻنهي شين کي مٽايو جيڪڏهن هيٺ ڏنل عنصر موجوده عنصر کان وڏو آهي. اسان گهربل صف حاصل ڪنداسين جيڪا لوپ جي اختتام تي مخصوص پابنديون سان عمل ڪندي.
22. صف ۾ هر عنصر جي پيداوار سان ڊويزن آپريٽر استعمال ڪرڻ کان سواءِ هڪ صف جي هر عنصر کي ڪيئن متبادل بڻايو وڃي؟
ڊويزن آپريٽر کي استعمال ڪرڻ کان سواء، هر عنصر کي انٽيجر صف ۾ ٻين سڀني عناصر جي پيداوار سان تبديل ڪريو.
لڪير واري وقت ۽ مسلسل خلا ۾، اسان هن مسئلي کي حل ڪرڻ لاء استعمال ڪري سگهون ٿا. ھر عنصر جي پراڊڪٽس کي بار بار حساب ڪرڻ ساڄي سباريءَ ۾ ۽ کاٻي ذيلي پراڊڪٽ کي پاس ڪرڻ جيئن فنڪشن پيرا ميٽرز جو تصور آھي.
وقت جي پيچيدگي O (n) آهي.
23. logarithmic time ۾ هڪ صف ۾ سڀ کان عجيب عنصر ڳوليو
هڪ عددي صف ڏني وئي جنهن ۾ سڀني کان سواءِ هڪ ميمبر وٽ واقعن جا به انگ آهن، مسئلو اهو طئي ڪرڻ آهي ته هي هڪ عنصر ڪيترا ڀيرا ظاهر ٿئي ٿو. logarithmic time and constant space ۾ عجيب واقع ٿيندڙ عنصر کي ڳولھيو جيڪڏھن ساڳيا عنصر صف ۾ جوڑوں ۾ ٿين ٿا ۽ قطار ۾ ڏنل عنصر جي ٻن کان وڌيڪ مثالون ڪڏھن به نه ٿي سگھن ٿيون.
XOR آپريشن اسان کي هن مسئلي کي لڪير واري وقت ۾ حل ڪرڻ جي قابل بڻائي ٿو. مقصد آهي XOR کي صف ۾ هر عنصر. صرف بي جوڙ عناصر باقي رھندا آھن ان کان پوءِ به آھن جو موجود عناصر ھڪ ٻئي کي رد ڪري ڇڏيندا آھن.
اهو مسئلو به O(log(n)) وقت ۾ حل ٿي سگهي ٿو.
24. هڪ سرڪيولر صف ۾ هر عنصر لاءِ ايندڙ وڏو عنصر ڪيئن حاصل ڪجي؟
هر عنصر لاء ايندڙ وڏو عنصر هڪ سرکلر انٽيجر صف ۾ واقع هجڻ گهرجي. صف ۾ هڪ عنصر x کان پوءِ پهريون وڏو عدد ان عنصر جو ايندڙ وڏو عنصر آهي.
ساڄي کان کاٻي پاسي، اسان صفن جي شين تي ڪم ڪري سگهون ٿا. مقصد هر عنصر x لاءِ لوپ ڪرڻ آهي جيستائين يا ته اسٽيڪ خالي نه آهي يا اسان وٽ ان جي مٿان هڪ اعلي عنصر آهي. x جي ايندڙ وڏي عنصر کي سيٽ جي چوٽي تي ظاهر ٿيڻ لاءِ سيٽ ڪريو جڏهن اهو ٿئي ٿو.
25. ڳولھيو ھڪ صف جي ڦيري جي ڳڻپ؟
ڳولھيو ھڪڙي صف جي ڦيرن جو ڪل تعداد. هڪ جوڙو I j) کي حوالو ڏنو ويو آهي هڪ صف جي هڪ ڦيرڦار A جيڪڏهن I j) ۽ (A[i] > A[j]). اسان کي انهن جي هر جوڙي کي صف ۾ شمار ڪرڻ گهرجي.
سڀني صفن جي ميمبرن کي ڳڻڻ جيڪي ان جي ساڄي پاسي کان گھٽ آھن ۽ نتيجن کي ٻاھر ۾ شامل ڪرڻ ھڪڙو سڌو رستو آھي.
هن حل ۾ هڪ O (n2) پيچيدگي آهي، جتي n ان پٽ جي سائيز آهي.
26. برسات جي پاڻيءَ جي ڇڪڻ جو مسئلو ڇا آهي؟
سڀ کان وڌيڪ پاڻي ڳولڻ جيڪو بارن جي ڏنل سيٽ ۾ ڦاسي سگهي ٿو هر هڪ هڪ يونٽ جي چوٽي سان "ٽريپنگ برسات" مسئلو طور سڃاتو وڃي ٿو.
مقصد اهو آهي ته اعلي ترين بار جو تعين ڪرڻ جيڪو هر بار جي کاٻي ۽ ساڄي پاسي رکيل هجي. کاٻي ۽ ساڄي طرف اڳين بارن جو گھٽ ۾ گھٽ، موجوده بار جي اوچائي کان گھٽ، پاڻيءَ جو مقدار آھي جيڪو ھر بار جي چوٽيءَ تي ذخيرو ٿيل آھي.
ٿڪل
ٻين ڊيٽا جي جوڙجڪ جي عنوانن جي مقابلي ۾، صفون آسان آهن. آري انٽرويو سوالن کي ايڪو ڪرڻ لاءِ، توهان کي صفن جي بنيادي سمجھ هجڻ جي ضرورت آهي.
توهان کي سرن جي بنيادن جو وڏي پيماني تي جائزو وٺڻ گهرجي، بشمول صف جي آپريشنز (صفن جو اعلان ڪرڻ/ ٺاهڻ کان وٺي صفن جي شين تائين رسائي/ تبديل ڪرڻ تائين)، انهي سان گڏ پروگرامنگ تصورات جهڙوڪ لوپس، ريڪرشن، ۽ بنيادي آپريٽر ڪاميابيءَ سان سرن جي انٽرويو سوالن جا جواب ڏيڻ لاءِ. مسئلي کي مڪمل طور تي سڃاڻي ٿو.
توهان کي وضاحت طلب ڪرڻ گهرجي جيڪڏهن توهان وٽ ڪو سوال آهي. ان مسئلي کي وڌيڪ منظم حصن ۾ ورهائڻ بابت سوچيو. پڪ ڪريو ته توهان وٽ پروگرامنگ شروع ڪرڻ کان پهريان ذهن ۾ الورورٿم آهي؛ ان کي لکو يا ان کي فلو چارٽ ۾ ڏسو. پوء ڪوڊ لکڻ شروع ڪريو.
جواب ڇڏي وڃو