विषय - सूची[छिपाना][प्रदर्शन]
- 1. आप एक ऐरे को कैसे परिभाषित करते हैं?
- 2. गतिशील सरणियाँ: वे क्या हैं? क्या उन्हें बेसिक एरेज़ से अलग करता है?
- 3. एक सरणी और एक शब्दकोश एक दूसरे से कैसे भिन्न होते हैं?
- 4. सरणियों के कुछ लाभों और दोषों की सूची बनाइए।
- 5. "स्पैस ऐरे" का क्या अर्थ है?
- 6. आप किसी ऐरे पर लिंक्ड लिस्ट कब चुनेंगे?
- 7. एक अनुक्रमित सरणी को एक सहयोगी सरणी से क्या अलग करता है?
- 8. सॉर्ट किए गए सरणियों पर हीप के क्या फायदे हैं?
- 9. क्या हम सरणी के आकार को ऋणात्मक परिभाषित कर सकते हैं?
- 10. आप 1 से 100-तत्व सरणी में लापता पूर्णांक का पता कैसे लगाते हैं?
- 11. आप किसी सरणी में किसी तत्व की अनुक्रमणिका कैसे खोजते हैं?
- 12. आप किसी सरणी से किसी विशिष्ट तत्व से कैसे छुटकारा पा सकते हैं?
- 13. दो सरणियों की समानता को कैसे सत्यापित किया जा सकता है?
- 14. जब हम सरणियों पर चर्चा करते हैं, तो "आयाम" और "सदस्यता" वाक्यांशों से आपका क्या तात्पर्य है?
- कोडिंग साक्षात्कार प्रश्न
- 15. एक सरणी में एक जोड़ी की तलाश करें जिसमें निर्दिष्ट योग है
- 16. रैखिक समय के साथ बाइनरी सरणी छँटाई
- 17. एक सरणी में सबसे बड़ा टू-इंट उत्पाद खोजें।
- 18. सरणी के सभी शून्यों को अंत में कैसे स्थानांतरित करें
- 19. एक ऑपरेशन में स्विच की गई दो प्रविष्टियों के साथ एक सरणी को कैसे सॉर्ट करें।
- 20. जगह में दो क्रमबद्ध सरणियों को कैसे संयोजित करें।
- 21. उच्च और निम्न पदों को बारी-बारी से वस्तुओं की एक सरणी को कैसे पुन: व्यवस्थित करें?
- 22. किसी डिवीज़न ऑपरेटर का उपयोग किए बिना किसी सरणी के प्रत्येक तत्व को सरणी में प्रत्येक तत्व के उत्पाद के साथ कैसे बदलें?
- 23. लॉगरिदमिक समय में एक सरणी में सबसे अजीब तत्व खोजें
- 24. वृत्ताकार सरणी में प्रत्येक तत्व के लिए अनुवर्ती बड़ा तत्व कैसे प्राप्त करें?
- 25. किसी सरणी की व्युत्क्रम संख्या ज्ञात कीजिए?
- 26. वर्षा जल संचयन समस्या क्या है?
- निष्कर्ष
कोडिंग साक्षात्कार में डीएसए प्रश्नों की एक श्रृंखला होती है। यदि आप FAANG या किसी अन्य टियर -1 तकनीकी व्यवसाय के साथ अपने आगामी तकनीकी साक्षात्कार के लिए तैयार हो रहे हैं, तो आपको सरणियों के साथ कुशल होना चाहिए।
अधिकांश कोडिंग साक्षात्कारों में, यह स्ट्रिंग्स के बाद दूसरे स्थान पर आता है। एक सरणी संबंधित डेटा तत्वों का एक समूह है जो स्मृति में एक दूसरे के निकट निकटता में रखा जाता है।
चूंकि वे सभी प्रोग्रामिंग भाषाओं, जैसे सी, सी ++, जावा, पायथन, पर्ल और रूबी से जुड़े हुए हैं, वे हर जगह हैं। कुछ अभ्यास कोडिंग चुनौतियों के लिए पढ़ना जारी रखें और सरणियों के आधार पर प्रश्नों और उत्तरों का साक्षात्कार करें।
कोडिंग मुद्दों से निपटने के लिए इस पोस्ट में पायथन का उपयोग किया जाएगा क्योंकि इसका उपयोग करना, समझना और हम में से अधिकांश को परिचित होना चाहिए।
चलो शुरू करें।
1. आप एक ऐरे को कैसे परिभाषित करते हैं?
- संबंधित डेटा प्रकारों का एक समूह एक सरणी है।
- सरणियाँ हमेशा तय होती हैं।
- एक ही तरह के वेरिएबल को कई जगहों पर ऐरे ऑब्जेक्ट्स द्वारा स्टोर किया जाता है।
- आदिम प्रकार और वस्तु संदर्भ दोनों इसके साथ संगत हैं।
2. गतिशील सरणियाँ: वे क्या हैं? क्या उन्हें बेसिक एरेज़ से अलग करता है?
स्वचालित स्केलिंग जो गतिशील सरणियाँ (जावा में बढ़ने योग्य सरणियाँ, आकार बदलने योग्य सरणियाँ, परिवर्तनशील सरणियाँ या ArrayLists के रूप में भी संदर्भित) प्रदान करती हैं, एक महत्वपूर्ण लाभ है।
आपको हमेशा पता होना चाहिए कि आपका सरणी कितने तत्वों को पहले से संग्रहीत करेगा क्योंकि सरणियों का एक निश्चित आकार होता है। दूसरी ओर, जब आप इसमें अतिरिक्त सदस्य जोड़ते हैं तो एक गतिशील सरणी बढ़ती है, इसलिए आपको इसका सटीक आकार पहले से जानने की आवश्यकता नहीं है।
3. एक सरणी और एक शब्दकोश एक दूसरे से कैसे भिन्न होते हैं?
यह नियमित रूप से पूछे जाने वाले साक्षात्कार प्रश्नों की एक बुनियादी-आधारित सरणी है। सरणियों और शब्दकोशों के बीच प्रमुख अंतर निम्नलिखित हैं:
- एक सरणी समान वस्तुओं की एक क्रमबद्ध सूची है। दूसरी ओर, डिक्शनरी में की-वैल्यू पेयर होते हैं।
- ऐरे आकार गतिशील रूप से बदल सकते हैं। इस तरह के गतिशील विचार शब्दकोशों में मौजूद नहीं हैं।
- किसी सरणी का उपयोग करने से पहले, उसका आकार निर्दिष्ट किया जाना चाहिए। शब्दकोश आकार को अनुकूलित करने की आवश्यकता नहीं है।
- यदि आप सरणी के आकार का विस्तार करना चाहते हैं तो Redim कथन का उपयोग करें। शब्दकोशों में, एक तत्व को बिना घोषणा के जोड़ा जा सकता है।
4. सरणियों के कुछ लाभों और दोषों की सूची बनाइए।
लाभ:
- ऐरे एक साथ कई तत्वों को सॉर्ट कर सकते हैं।
- अन्य डेटा संरचनाएं, जैसे स्टैक, क्यू, लिंक्ड सूचियाँ, ट्री, ग्राफ़ इत्यादि, को एक ऐरे में लागू किया जा सकता है।
- किसी सरणी के तत्व तक पहुँचने के लिए एक अनुक्रमणिका का उपयोग किया जा सकता है।
नुकसान:
- एक सरणी का आकार अग्रिम में घोषित किया जाना चाहिए। हालाँकि, सरणी घोषणा के समय, हमें उस आकार के बारे में पता नहीं हो सकता है जिसकी हमें आवश्यकता है।
- सरणी की संरचना स्थिर है। इसका तात्पर्य है कि सरणी का आकार हमेशा निश्चित होता है और स्मृति आवंटन को बढ़ाया या घटाया नहीं जा सकता है।
5. "स्पैस ऐरे" का क्या अर्थ है?
एक विरल सरणी एक डेटा सरणी है जिसमें शून्य मानों के साथ बहुत सारी प्रविष्टियाँ होती हैं। इसके विपरीत, घने सरणी में गैर-शून्य मानों वाले अधिकांश आइटम होते हैं। एक विरल सरणी के सूचकांक, जो संख्याओं को वस्तुओं में परिवर्तित करता है, में अंतराल शामिल हो सकते हैं। हैश मैप की तुलना में, वे अधिक मेमोरी-कुशल हैं।
6. आप किसी ऐरे पर लिंक्ड लिस्ट कब चुनेंगे?
सरणियों के बजाय लिंक्ड सूचियों का उपयोग करते समय, इस पर विचार करें:
- यादृच्छिक अभिगम के लिए आपको किसी तत्व की आवश्यकता नहीं है।
- जहां अस्थायी पूर्वानुमेयता आवश्यक है, आपको सूची से निरंतर-समय सम्मिलन और निष्कासन की आवश्यकता है।
- प्राथमिकता कतार बनाने के लिए, आपको सूची के केंद्र में आइटम रखने की आवश्यकता हो सकती है।
- आपको पता नहीं है कि सूची कितनी लंबी होगी। यदि सरणी का आकार बढ़ता है, तो आपको साधारण सरणियों की तरह ही स्मृति को फिर से घोषित और डुप्लिकेट करना होगा।
7. एक अनुक्रमित सरणी को एक सहयोगी सरणी से क्या अलग करता है?
साहचर्य और अनुक्रमित सरणियों के बीच प्राथमिक अंतर निम्न तालिका में सूचीबद्ध हैं।
- एक सहयोगी सरणी को सॉर्ट करने के लिए टेक्स्ट या न्यूमेरिक फॉर्मेट में की-वैल्यू पेयर का उपयोग किया जाता है। अनुक्रमित सरणी की कुंजियाँ सभी संख्यात्मक होती हैं, और प्रत्येक कुंजी एक विशिष्ट मान से जुड़ी होती है।
- एक सहयोगी सरणी में, कुंजी एक स्ट्रिंग हो सकती है। 0 से शुरू होने वाली पूर्णांक कुंजियों के साथ अनुक्रमित सरणी।
- एक दो-स्तंभ तालिका एक सहयोगी सरणी के व्यवहार की नकल करती है। एकल-स्तंभ तालिका के समान अनुक्रमित सरणियाँ हैं।
- मानचित्र एक सहयोगी सरणी प्रकार हैं। एक सूचकांक सरणी नक्शा नहीं है।
8. सॉर्ट किए गए सरणियों पर हीप के क्या फायदे हैं?
क्रमबद्ध सरणियों पर हीप का उपयोग करने की समय दक्षता प्रमुख लाभ है। जबकि ढेर संचालन तेज होता है, एक सरणी को छाँटने में बहुत समय लगता है। एक ढेर सबसे छोटे तत्व की खोज कर सकता है जो किसी सरणी को क्रमबद्ध करने की तुलना में बहुत अधिक तेज़ी से होता है।
क्रमबद्ध सरणी का उपयोग करके संख्याओं के दिए गए संग्रह को दो तरीकों में से एक में व्यवस्थित किया जा सकता है। दूसरी ओर, संख्याओं के दिए गए संग्रह के लिए, एक से अधिक संभावित ढेर हो सकते हैं।
9. क्या हम सरणी के आकार को ऋणात्मक परिभाषित कर सकते हैं?
नहीं, हम एक ऋणात्मक पूर्णांक को किसी सरणी के आकार के रूप में परिभाषित नहीं कर सकते। यदि हम घोषणा करते हैं तो कोई संकलन-समय त्रुटि नहीं होगी। हालाँकि, रनटाइम पर, हम एक NegativeArraySizeException का सामना करेंगे।
10. आप 1 से 100-तत्व सरणी में लापता पूर्णांक का पता कैसे लगाते हैं?
निम्नलिखित फ़ंक्शन को लागू करके श्रृंखला के कुल की गणना की जा सकती है: n (n + 1) / 2
केवल अगर सरणी में कोई डुप्लीकेट नहीं है या इसमें एक से अधिक पूर्णांक गुम हैं तो यह फ़ंक्शन संचालित होगा। क्या किसी सरणी में डुप्लिकेट तत्व हैं, आप यह देखने के लिए सरणी को सॉर्ट कर सकते हैं कि क्या कोई तत्व समान हैं।
11. आप किसी सरणी में किसी तत्व की अनुक्रमणिका कैसे खोजते हैं?
एक तत्व की अनुक्रमणिका को रैखिक या बाइनरी खोज के माध्यम से खोजा जा सकता है। जब तक यह आवश्यक तत्व के मिलान का पता नहीं लगाता, तब तक एक रैखिक खोज फ़ंक्शन एक सरणी में प्रत्येक तत्व पर लूप करता है। एक बार मिलान करने वाले तत्व का पता लगाने के बाद यह सूचकांक लौटाता है। नतीजतन, रैखिक खोज की अस्थायी जटिलता O. (n) है। एक क्रमबद्ध और एक क्रमबद्ध सरणी दोनों रैखिक खोज का उपयोग कर सकते हैं।
एक द्विआधारी खोज का उपयोग करना, जो अंतराल के माध्यिका को आवश्यक तत्व से मेल खाने और सूचकांक प्रदान करने तक सरणी को लगातार आधे में विभाजित करता है, यदि सरणी को क्रमबद्ध किया जाता है, तो आप तत्व की अनुक्रमणिका प्राप्त कर सकते हैं। नतीजतन, द्विआधारी खोज की अस्थायी जटिलता ओ है (लॉग एन)।
12. आप किसी सरणी से किसी विशिष्ट तत्व से कैसे छुटकारा पा सकते हैं?
चूंकि आप मूल सरणी से तत्वों को आसानी से नहीं हटा सकते हैं क्योंकि वे एक परिभाषित आकार के साथ निश्चित सेट हैं, साक्षात्कारकर्ता आपसे एक अलग दृष्टिकोण का सुझाव देने और सवाल उठाने वाली समस्या से निपटने की मांग कर रहा है। किसी तत्व को हटाने के लिए एक नई सरणी बनाना कार्रवाई का सबसे अच्छा तरीका है। आप इस सरणी में पहले सरणी से तत्वों को डुप्लिकेट कर सकते हैं और केवल उस तत्व को शामिल कर सकते हैं जिसे आप हटाना चाहते हैं।
एक अन्य रणनीति में लक्ष्य तत्व को सरणी में ढूंढना और फिर उन सभी वस्तुओं के क्रम को उलट देना शामिल है जो लक्ष्य तत्व के दाईं ओर हैं।
13. दो सरणियों की समानता को कैसे सत्यापित किया जा सकता है?
आपको पहले प्रदान की गई दो सरणियों की लंबाई को सत्यापित करना होगा। दोनों सरणियों के मेल खाने वाले आइटम की तुलना तब की जाती है जब उनकी लंबाई बराबर होती है। दो सरणियों को समान माना जाएगा। यदि प्रत्येक पत्राचार में घटकों की प्रत्येक जोड़ी समान है। यदि सरणियाँ आकार में बड़ी हैं तो दो सरणियों की समानता की जाँच करने के लिए इस दृष्टिकोण की सलाह नहीं दी जाती है क्योंकि इसमें बहुत समय लगेगा। आप Arrays वर्ग में शामिल बराबर () पद्धति का भी उपयोग कर सकते हैं, हालाँकि, यदि साक्षात्कारकर्ता आपको अंतर्निहित विधियों का उपयोग किए बिना दो सरणियों की तुलना करने के लिए कहता है, तो यह तरीका उपयोगी होगा।
14. जब हम सरणियों पर चर्चा करते हैं, तो "आयाम" और "सदस्यता" वाक्यांशों से आपका क्या तात्पर्य है?
किसी सरणी का "आयाम" प्रत्येक व्यक्तिगत सदस्य की पहचान करने के लिए आवश्यक सूचकांकों या सदस्यताओं की संख्या है। सदस्यता और आयाम अस्पष्ट हो सकते हैं। एक आयाम अनुमत कुंजियों की श्रेणी का विवरण है, जबकि एक सबस्क्रिप्ट एक संख्या है। प्रत्येक सरणी आयाम के लिए केवल एक सबस्क्रिप्ट आवश्यक है।
उदाहरण के लिए, सरणी गिरफ्तारी [10] [5] के दो आयाम हैं। एक पर 10 और दूसरे पर 5 आकार। इसके घटकों को संबोधित करने के लिए, आपको दो सदस्यताओं की आवश्यकता होती है। दोनों 0 और 4 के बीच हैं; 0 और 9 के बीच एक, समावेशी।
कोडिंग साक्षात्कार प्रश्न
15. एक सरणी में एक जोड़ी की तलाश करें जिसमें निर्दिष्ट योग है
उदाहरण के लिए,
इनपुट:
- अंक = [8, 7, 2, 5, 3, 1]
- लक्ष्य = ०
आउटपुट:
- जोड़ी मिली (8, 2)
- Or
- जोड़ी मिली (7, 3)
इनपुट:
- अंक = [5, 2, 6, 8, 1, 9]
- लक्ष्य = ०
आउटपुट:
- जोड़ी नहीं मिली
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 से भरा छोड़ दें।
दिए गए दृष्टिकोण में ओ (एन) समय जटिलता है और कोई अतिरिक्त भंडारण का उपयोग नहीं करता है, जहां एन इनपुट का आकार है।
17. एक सरणी में सबसे बड़ा टू-इंट उत्पाद खोजें।
एक पूर्णांक सरणी में दो संख्याओं का सबसे बड़ा गुणनफल ज्ञात कीजिए।
एक उदाहरण के रूप में सरणी 10 3 5 6 2 के बारे में सोचें। (-10, -3) या (5, 6) जोड़ी उच्चतम उत्पाद है।
प्रत्येक तत्व संयोजन के बारे में सोचना और उनके उत्पाद का पता लगाना एक मूर्खतापूर्ण तरीका है। यदि वर्तमान जोड़ी का उत्पाद अब तक प्राप्त अधिकतम उत्पाद से बड़ा है, तो अधिकतम उत्पाद को अपडेट करें। अंतिम उत्पाद के घटकों को अंतिम रूप से प्रिंट करें।
उपरोक्त समाधान, जहां n इनपुट की मात्रा है, में O(n2) की समय जटिलता है और यह कोई और स्थान नहीं लेता है।
18. सरणी के सभी शून्यों को अंत में कैसे स्थानांतरित करें
सभी शून्यों को एक पूर्णांक सरणी में अंत तक ले जाएं। उत्तर को निरंतर स्थान का उपयोग करने से बचना चाहिए और सरणी के घटकों के सापेक्ष क्रम को संरक्षित करना चाहिए।
इनपुट: {1,2,3,0,8,0,4,7}
आउटपुट {1,2,3,8,4,7,0,0} होगा
यदि वर्तमान तत्व शून्य नहीं है, तो तत्व को निम्न उपलब्ध स्थिति में सरणी में रखें। एक बार सरणी के सभी आइटम संसाधित हो जाने के बाद सभी शेष सूचकांकों को 0 से भरें।
पिछले समाधान में ओ (एन) समय जटिलता है, जहां एन इनपुट का आकार है।
19. एक ऑपरेशन में स्विच की गई दो प्रविष्टियों के साथ एक सरणी को कैसे सॉर्ट करें।
दो अदला-बदली वाले आइटम दिए गए रैखिक समय में एक सरणी को क्रमबद्ध करें और इसके सभी तत्वों के साथ एक सरणी को आरोही क्रम में व्यवस्थित करें। दिखाएँ कि सरणी में कोई डुप्लिकेट नहीं है।
इनपुट: = [1,9,3,4,7,2] या [9,3,7,2,1,4] या [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. किसी डिवीज़न ऑपरेटर का उपयोग किए बिना किसी सरणी के प्रत्येक तत्व को सरणी में प्रत्येक तत्व के उत्पाद के साथ कैसे बदलें?
डिवीजन ऑपरेटर का उपयोग किए बिना, प्रत्येक तत्व को अन्य सभी तत्वों के उत्पाद के साथ एक पूर्णांक सरणी में बदलें।
रैखिक समय और निरंतर स्थान में, हम इस मुद्दे को हल करने के लिए रिकर्सन का उपयोग कर सकते हैं। दाएं सबएरे में प्रत्येक तत्व के उत्पादों की पुनरावर्ती गणना करना और बाएं सबएरे उत्पाद को फ़ंक्शन पैरामीटर के रूप में पास करना धारणा है।
समय जटिलता ओ (एन) है।
23. लॉगरिदमिक समय में एक सरणी में सबसे अजीब तत्व खोजें
एक पूर्णांक सरणी को देखते हुए जिसमें एक सदस्य के अलावा सभी घटनाओं की संख्या भी होती है, समस्या यह निर्धारित करना है कि यह एक तत्व कितनी बार प्रकट होता है। लॉगरिदमिक समय और स्थिर स्थान में विषम होने वाले तत्व का पता लगाएं यदि समान तत्व सरणी में जोड़े में होते हैं और एक पंक्ति में किसी दिए गए तत्व के दो से अधिक उदाहरण कभी नहीं हो सकते हैं।
XOR ऑपरेशन हमें इस समस्या को रैखिक समय में हल करने में सक्षम बनाता है। लक्ष्य सरणी में प्रत्येक तत्व को एक्सओआर करना है। सम घटित होने वाले तत्वों के एक-दूसरे को रद्द करने के बाद ही विषम घटित होने वाले तत्व शेष रहते हैं।
इस समस्या को O(log(n)) समय में भी हल किया जा सकता है।
24. वृत्ताकार सरणी में प्रत्येक तत्व के लिए अनुवर्ती बड़ा तत्व कैसे प्राप्त करें?
एक गोलाकार पूर्णांक सरणी में प्रत्येक तत्व के लिए अगला बड़ा तत्व स्थित होना चाहिए। सरणी में तत्व x के बाद पहला बड़ा पूर्णांक उस तत्व का बाद का बड़ा तत्व है।
दाएं से बाएं, हम ऐरे आइटम पर काम कर सकते हैं। लक्ष्य प्रत्येक तत्व x के लिए लूप करना है जब तक कि स्टैक खाली न हो या हमारे पास इसके ऊपर एक उच्च तत्व न हो। स्टैक के शीर्ष पर दिखाई देने के लिए x का अगला बड़ा तत्व सेट करें जब यह होता है।
25. किसी सरणी की व्युत्क्रम संख्या ज्ञात कीजिए?
किसी सरणी के व्युत्क्रमों की कुल संख्या ज्ञात कीजिए। एक जोड़ी I j) को एक सरणी A का व्युत्क्रम कहा जाता है यदि I j) और (A[i] > A[j])। हमें इनमें से प्रत्येक जोड़ी को सरणी में गिनना चाहिए।
सभी सरणी सदस्यों को गिनना जो इसके दाईं ओर से कम हैं और परिणाम को आउटपुट में जोड़ना एक सीधा तरीका है।
इस समाधान में ओ (एन 2) जटिलता है, जहां एन इनपुट का आकार है।
26. वर्षा जल संचयन समस्या क्या है?
एक इकाई की चौड़ाई वाली सलाखों के दिए गए सेट में सबसे अधिक पानी का पता लगाना "ट्रैपिंग रेन" समस्या के रूप में जाना जाता है।
लक्ष्य उच्चतम बार को निर्धारित करना है जिसे प्रत्येक बार के बाईं और दाईं ओर रखा जा सकता है। बाएँ और दाएँ अग्रणी बारों में से न्यूनतम, वर्तमान बार की ऊँचाई से कम, प्रत्येक बार के ऊपर संग्रहीत पानी की मात्रा है।
निष्कर्ष
अन्य डेटा संरचना विषयों की तुलना में, सरणियाँ सरल होती हैं। एरे साक्षात्कार के प्रश्नों को हल करने के लिए, आपको सरणियों की मूलभूत समझ होनी चाहिए।
आपको सरणियों की नींव की व्यापक रूप से समीक्षा करनी चाहिए, जिसमें सरणी संचालन (सरणी को घोषित/बनाने से लेकर सरणी आइटम तक पहुंचने/संशोधित करने) के साथ-साथ प्रोग्रामिंग अवधारणाएं जैसे लूप, रिकर्सन और बुनियादी ऑपरेटर शामिल हैं ताकि सफलतापूर्वक सरणी साक्षात्कार प्रश्नों का उत्तर दिया जा सके। मामले को पूरी तरह से पहचानें।
यदि आपके कोई प्रश्न हैं तो आपको स्पष्टीकरण मांगना चाहिए। समस्या को अधिक प्रबंधनीय भागों में विभाजित करने के बारे में सोचें। सुनिश्चित करें कि प्रोग्रामिंग शुरू करने से पहले आपके दिमाग में एल्गोरिदम है; इसे लिख लें या फ़्लोचार्ट में इसकी कल्पना करें। फिर कोड लिखना शुरू करें।
एक जवाब लिखें