अनुक्रमणिका[लपवा][दाखवा]
- 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. रेन वॉटर ट्रॅपिंगची समस्या काय आहे?
- निष्कर्ष
कोडिंग मुलाखतींमध्ये DSA प्रश्नांची मालिका असते. तुम्ही FAANG किंवा इतर टियर-1 टेक व्यवसायासाठी तुमच्या आगामी टेक मुलाखतीसाठी तयार असल्यास तुम्हाला अॅरे सह कुशल असले पाहिजे.
बहुतेक कोडिंग मुलाखतींमध्ये, ते स्ट्रिंग्सच्या दुसऱ्या स्थानावर येते. अॅरे मेमरीमध्ये एकमेकांच्या जवळ ठेवलेल्या संबंधित डेटा घटकांचे समूह आहे.
ते C, C++, Java, Python, Perl आणि Ruby सारख्या सर्व प्रोग्रामिंग भाषांशी जोडलेले असल्यामुळे ते सर्वत्र आहेत. काही सराव कोडिंग आव्हाने आणि अॅरेवर आधारित मुलाखतीचे प्रश्न आणि उत्तरे वाचणे सुरू ठेवा.
कोडिंग समस्या सोडवण्यासाठी पायथनचा वापर या पोस्टमध्ये केला जाईल कारण ते वापरणे सोपे आहे, समजून घेणे आणि आपल्यापैकी बहुतेकांना परिचित असणे आवश्यक आहे.
चला सुरवात करूया.
1. तुम्ही अॅरे कसे परिभाषित करता?
- संबंधित डेटा प्रकारांचा समूह एक अॅरे आहे.
- अॅरे नेहमी निश्चित असतात.
- एकाच प्रकारचे व्हेरिएबल अनेक ठिकाणी अॅरे ऑब्जेक्टद्वारे साठवले जाते.
- आदिम प्रकार आणि ऑब्जेक्ट संदर्भ दोन्ही त्याच्याशी सुसंगत आहेत.
2. डायनॅमिक अॅरे: ते काय आहेत? त्यांना मूलभूत अॅरेपासून वेगळे काय करते?
डायनॅमिक अॅरे (ज्याला वाढता येण्याजोगे अॅरे, आकार बदलता येण्याजोगे अॅरे, बदलण्यायोग्य अॅरे किंवा Java मधील अॅरेलिस्ट असेही संबोधले जाते) स्वयंचलित स्केलिंग हा एक महत्त्वाचा फायदा आहे.
अॅरेचा आकार निश्चित असल्याने तुमचा अॅरे किती एलिमेंट्स अगोदर स्टोअर करेल हे तुम्हाला नेहमी माहीत असायला हवे. दुसरीकडे, डायनॅमिक अॅरे, जसजसे तुम्ही त्यात अतिरिक्त सदस्य जोडता तसतसे वाढते, त्यामुळे तुम्हाला त्याचा अचूक आकार आधीपासून माहित असणे आवश्यक नाही.
3. अॅरे आणि डिक्शनरी एकमेकांपासून कसे बदलतात?
नियमितपणे विचारल्या जाणार्या मुलाखतीच्या प्रश्नांची ही मूलभूत तत्त्वांवर आधारित अॅरे आहे. अॅरे आणि डिक्शनरीमधील मुख्य फरक खालीलप्रमाणे आहेत:
- अॅरे ही समान वस्तूंची क्रमबद्ध सूची आहे. दुसरीकडे, शब्दकोशामध्ये की-व्हॅल्यू जोड्या आहेत.
- अॅरे आकार गतिमानपणे बदलू शकतात. अशा गतिमान कल्पना शब्दकोषांमध्ये अस्तित्वात नाहीत.
- अॅरे वापरण्यापूर्वी, त्याचा आकार निर्दिष्ट करणे आवश्यक आहे. शब्दकोश आकार सानुकूलित करणे आवश्यक नाही.
- जर तुम्हाला अॅरेचा आकार वाढवायचा असेल तर Redim स्टेटमेंट वापरा. शब्दकोषांमध्ये, घोषणेशिवाय घटक जोडला जाऊ शकतो.
4. अॅरेचे काही फायदे आणि तोटे सूचीबद्ध करा.
फायदे:
- अॅरे एकाच वेळी अनेक घटकांची क्रमवारी लावू शकतात.
- इतर डेटा स्ट्रक्चर्स, जसे की स्टॅक, रांग, लिंक केलेल्या याद्या, झाडे, आलेख, इ, अॅरेमध्ये लागू केले जाऊ शकतात.
- अॅरेच्या घटकापर्यंत पोहोचण्यासाठी निर्देशांक वापरला जाऊ शकतो.
तोटे:
- अॅरेचा आकार आगाऊ घोषित करणे आवश्यक आहे. अॅरे डिक्लेरेशनच्या क्षणी, तथापि, आम्हाला आवश्यक असलेल्या आकाराची जाणीव असू शकत नाही.
- अॅरेची रचना स्थिर आहे. हे सूचित करते की अॅरे आकार नेहमी निश्चित केला जातो आणि मेमरी वाटप वाढवता किंवा कमी करता येत नाही.
5. "विरळ अॅरे" चा संदर्भ काय आहे?
विरळ अॅरे हा डेटा अॅरे आहे ज्यामध्ये शून्य मूल्यांसह भरपूर नोंदी असतात. याउलट, दाट अॅरेमध्ये त्याच्या बहुसंख्य आयटम शून्य नसल्या मूल्यांसह असतात. विरळ अॅरेच्या निर्देशांकांमध्ये, जे संख्यांना ऑब्जेक्टमध्ये रूपांतरित करते, त्यात अंतर समाविष्ट असू शकते. हॅशमॅपच्या तुलनेत, ते अधिक मेमरी-कार्यक्षम आहेत.
6. तुम्ही अॅरेवर लिंक केलेली सूची कधी निवडाल?
अॅरेऐवजी लिंक केलेल्या याद्या वापरताना, विचार करा:
- यादृच्छिक प्रवेशासाठी तुम्हाला कोणत्याही घटकांची आवश्यकता नाही.
- जेथे तात्पुरती अंदाज करणे आवश्यक आहे, तेथे तुम्हाला सूचीमधून सतत वेळ घालणे आणि काढून टाकणे आवश्यक आहे.
- प्राधान्य रांग तयार करण्यासाठी, तुम्हाला सूचीच्या मध्यभागी आयटम ठेवण्याची आवश्यकता असू शकते.
- यादी किती लांब असेल याची कल्पना नाही. अॅरेचा आकार वाढल्यास, तुम्ही साध्या अॅरेप्रमाणेच मेमरी पुन्हा घोषित आणि डुप्लिकेट करणे आवश्यक आहे.
7. अनुक्रमित अॅरेला असोसिएटिव्ह अॅरेपासून वेगळे काय करते?
सहयोगी आणि अनुक्रमित अॅरेमधील प्राथमिक भेद खालील सारणीमध्ये सूचीबद्ध केले आहेत.
- असोसिएटिव्ह अॅरे क्रमवारी लावण्यासाठी मजकूर किंवा अंकीय स्वरूपातील की-व्हॅल्यू जोडी वापरली जाते. अनुक्रमित अॅरेच्या की सर्व अंकीय आहेत आणि प्रत्येक की वेगळ्या मूल्याशी जोडलेली आहे.
- सहयोगी अॅरेमध्ये, की एक स्ट्रिंग असू शकते. 0 पासून सुरू होणाऱ्या पूर्णांक की सह अनुक्रमित अॅरे.
- दोन-स्तंभ सारणी सहयोगी अॅरेच्या वर्तनाची नक्कल करते. सिंगल-कॉलम टेबल प्रमाणेच अनुक्रमित अॅरे आहेत.
- नकाशे एक सहयोगी अॅरे प्रकार आहेत. इंडेक्स अॅरे हा नकाशा नाही.
8. सॉर्ट केलेल्या अॅरेपेक्षा हीपचे कोणते फायदे आहेत?
हीप ओव्हर सॉर्टेड अॅरे वापरण्याची वेळ कार्यक्षमता हा मुख्य फायदा आहे. हीप ऑपरेशन्स जलद असताना, अॅरेची क्रमवारी लावण्यासाठी बराच वेळ लागतो. अॅरे क्रमवारी लावता येण्यापेक्षा एक ढीग सर्वात लहान घटक शोधू शकतो.
क्रमवारी लावलेल्या अॅरे वापरून संख्यांचा दिलेला संग्रह दोनपैकी एका प्रकारे मांडता येतो. दुसरीकडे, दिलेल्या संख्येच्या संग्रहासाठी, एकापेक्षा जास्त संभाव्य ढीग असू शकतात.
9. आपण अॅरेचा आकार ऋणात्मक म्हणून परिभाषित करू शकतो का?
नाही, आम्ही अॅरेचा आकार म्हणून ऋण पूर्णांक परिभाषित करू शकत नाही. आम्ही घोषित केल्यास कंपाइल-टाइम एरर होणार नाही. रनटाइमच्या वेळी, तथापि, आम्हाला नकारात्मक अॅरेसाइझ एक्सेप्शनचा सामना करावा लागेल.
10. तुम्ही 1 ते 100-घटक अॅरेमध्ये गहाळ पूर्णांक कसा शोधता?
खालील फंक्शन लागू करून एकूण मालिकेची गणना केली जाऊ शकते: n (n + 1) / 2
अॅरेमध्ये कोणतेही डुप्लिकेट नसल्यास किंवा एकापेक्षा जास्त पूर्णांक नसल्यास हे कार्य कार्य करेल. अॅरेमध्ये डुप्लिकेट घटक आहेत की नाही, तुम्ही समतुल्य घटक आहेत का हे पाहण्यासाठी अॅरेची क्रमवारी लावू शकता.
11. अॅरेमधील घटकाची अनुक्रमणिका कशी शोधायची?
घटकाची अनुक्रमणिका रेखीय किंवा बायनरी शोधाद्वारे शोधली जाऊ शकते. जोपर्यंत तो आवश्यक घटकाशी जुळत नाही तोपर्यंत, एक रेखीय शोध कार्य अॅरेमधील प्रत्येक घटकावर लूप करते. एकदा तो जुळणारा घटक शोधल्यानंतर तो निर्देशांक परत करतो. परिणामी, रेखीय शोधाची ऐहिक जटिलता O. (n) आहे. क्रमवारी न केलेला आणि क्रमबद्ध न केलेला अॅरे दोन्ही रेखीय शोध वापरू शकतो.
बायनरी शोध वापरून, जो मध्यांतराचा मध्य आवश्यक घटकाशी जुळत नाही आणि अनुक्रमणिका प्रदान करेपर्यंत अॅरेला सतत अर्ध्या भागामध्ये विभाजित करते, अॅरे क्रमवारी लावल्यास तुम्हाला घटकाची अनुक्रमणिका मिळू शकते. परिणामी, बायनरी शोधाची ऐहिक जटिलता O. (लॉग n) आहे.
12. तुम्ही अॅरेमधून विशिष्ट घटकापासून मुक्त कसे होऊ शकता?
तुम्ही मूळ अॅरेमधून घटक हटवू शकत नाही कारण ते परिभाषित आकारासह निश्चित केलेले सेट आहेत, मुलाखत घेणारा तुम्हाला एक वेगळा दृष्टीकोन सुचवू इच्छित आहे आणि प्रश्न उपस्थित केलेल्या समस्येचा सामना करू इच्छित आहे. एखादे घटक हटवण्यासाठी नवीन अॅरे बनवणे हा सर्वोत्तम मार्ग आहे. तुम्ही या अॅरेमधील पहिल्या अॅरेमधील घटकांची डुप्लिकेट करू शकता आणि फक्त तुम्ही हटवू इच्छित असलेला घटक समाविष्ट करू शकता.
दुसर्या रणनीतीमध्ये अॅरेमधील लक्ष्य घटक शोधणे आणि नंतर लक्ष्य घटकाच्या उजवीकडे असलेल्या सर्व आयटमचा क्रम उलट करणे समाविष्ट आहे.
13. दोन अॅरेची समानता कशी सत्यापित केली जाऊ शकते?
आपण प्रथम प्रदान केलेल्या दोन अॅरेची लांबी सत्यापित करणे आवश्यक आहे. दोन्ही अॅरेच्या जुळणार्या आयटमची तुलना केली जाते जेव्हा त्यांची लांबी समान असते. दोन अॅरे समान मानले जातील. जर प्रत्येक पत्रव्यवहारातील घटकांची प्रत्येक जोडी समान असेल. अॅरे आकाराने मोठे असल्यास दोन अॅरेची समानता तपासण्यासाठी या दृष्टिकोनाचा सल्ला दिला जात नाही कारण यास बराच वेळ लागेल. तुम्ही Arrays क्लासमध्ये समाविष्ट असलेली equals() पद्धत देखील वापरू शकता, तथापि, जर इंटरव्ह्यूअरने तुम्हाला बिल्ट-इन पद्धतींचा वापर न करता दोन अॅरेची तुलना करण्यास सांगितले, तर ही पद्धत उपयुक्त ठरेल.
14. जेव्हा आपण अॅरेवर चर्चा करतो, तेव्हा तुम्हाला "आयाम" आणि "सबस्क्रिप्ट" या वाक्यांचा अर्थ काय आहे?
अॅरेचा “डायमेंशन” म्हणजे प्रत्येक सदस्याला ओळखण्यासाठी आवश्यक असलेल्या निर्देशांकांची संख्या किंवा सबस्क्रिप्ट्स. सदस्यता आणि परिमाणे अस्पष्ट असू शकतात. परिमाण हे परवानगी असलेल्या कीच्या श्रेणीचे वर्णन आहे, तर सबस्क्रिप्ट ही संख्या आहे. प्रत्येक अॅरे परिमाणासाठी फक्त एक सबस्क्रिप्ट आवश्यक आहे.
उदाहरणार्थ, array arr[10][5] मध्ये दोन मिती आहेत. एकावर 10 आणि दुसऱ्यावर 5 आकार. त्याचे घटक संबोधित करण्यासाठी, तुम्हाला दोन सदस्यता आवश्यक आहेत. दोघेही १५० ते २०० च्या दरम्यान आहेत; 0 आणि 4 मधील एक, समावेश.
कोडींग मुलाखत प्रश्न
15. निर्दिष्ट बेरीज असलेल्या अॅरेमध्ये एक जोडी शोधा
उदाहरणार्थ,
इनपुट:
- संख्या = [२, ३, ४, ७, ९, १००]
- लक्ष्य = 10
आउटपुट:
- जोडी सापडली (8, 2)
- Or
- जोडी सापडली (7, 3)
इनपुट:
- संख्या = [२, ३, ४, ७, ९, १००]
- लक्ष्य = 12
आउटपुट:
- जोडी सापडली नाही
16. रेखीय वेळेसह बायनरी अॅरे क्रमवारी
रेखीय वेळेत आणि निश्चित क्षेत्रामध्ये बायनरी अॅरे क्रमवारी लावा. आउटपुटने प्रथम सर्व शून्य प्रदर्शित केले पाहिजेत, नंतर सर्व.
उदाहरणार्थ,
- इनपुट: { 1, 0, 1, 0, 1, 0, 0, 1 }
- आउटपुट: { 0, 0, 0, 0, 1, 1, 1, 1 }
अॅरेच्या एकूण 0s ची गणना करणे, k म्हणा, आणि नंतर अॅरेमधील पहिले k निर्देशांक 0 सह आणि उर्वरित निर्देशांक 1 सह भरा. पर्यायी म्हणून, आम्ही एकूण किती 1s आहेत याची गणना करू शकतो. अॅरे k, अॅरेमधील शेवटचे k निर्देशांक 1 ने भरा आणि उर्वरित निर्देशांक 0 ने भरून सोडा.
दिलेल्या पध्दतीमध्ये O(n) वेळ जटिलता आहे आणि कोणतेही अतिरिक्त संचयन वापरत नाही, जेथे n इनपुटचा आकार आहे.
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 सह भरा.
आधीच्या सोल्युशनमध्ये O(n) वेळ जटिलता आहे, जेथे n इनपुटचा आकार आहे.
19. एका ऑपरेशनमध्ये स्विच केलेल्या दोन नोंदी असलेल्या अॅरेची क्रमवारी कशी लावायची.
दोन अदलाबदल केलेल्या आयटम आणि त्यातील सर्व घटकांसह चढत्या क्रमाने मांडलेल्या अॅरेला रेखीय वेळेत क्रमवारी लावा. अॅरेमध्ये कोणतेही डुप्लिकेट नसल्याची बतावणी करा.
इनपुट:= [1,9,3,4,7,2] किंवा [9,3,7,2,1,4] किंवा [2,4,1,7,3,9]
आउटपुट: = [१,२,३,४,७,९]
अॅरेमधील दुसऱ्या घटकापासून सुरुवात करून, प्रत्येक घटकाची त्याच्या पूर्ववर्तीशी तुलना करणे हे उद्दिष्ट आहे. x, आणि y हे दोन पॉइंटर घेऊन विवादाची स्थिती साठवली जाते.
मागील घटकाच्या अनुक्रमणिकेवर x आणि वर्तमान घटकाच्या अनुक्रमणिकेवर y जर आधीच्या घटकापेक्षा मोठा असेल तर अद्यतनित करा. मागील घटक वर्तमान घटकापेक्षा मोठा असल्याचे आढळल्यास वर्तमान घटकाच्या अनुक्रमणिकेवर y अद्यतनित करा.
शेवटी, घटकांच्या प्रत्येक समीप जोडीवर प्रक्रिया पूर्ण केल्यावर घटकांना अनुक्रमणिका x आणि y वर स्विच करा.
वर नमूद केलेली पद्धत n आकाराच्या इनपुट अॅरेचे फक्त एकच स्कॅन करते या वस्तुस्थितीमुळे, त्याची वेळ जटिलता O(n) आहे. समाधानासाठी अतिरिक्त खोली आवश्यक नाही.
20. ठिकाणी दोन क्रमवारी लावलेले अॅरे कसे एकत्र करायचे.
अॅरेज X[] आणि Y[]चे आयटम विलीन करा—प्रत्येकी m आणि n आकाराचे दोन क्रमवारी लावलेले अॅरे— क्रमबद्ध क्रम कायम ठेवून, म्हणजे, पहिल्या m सर्वात लहान घटकांसह X[] भरून आणि Y[] सह भरून. उर्वरित घटक.
अॅरे X[] मधील घटक आधीच योग्य स्थितीत असल्यास (म्हणजे, उर्वरित घटकांमध्ये सर्वात लहान असलेला), त्याकडे दुर्लक्ष करा; अन्यथा, त्यास सर्वात लहान घटकासह बदला, जो Y[] चा पहिला सदस्य देखील असेल. स्वॅपिंगनंतर क्रमवारी लावलेला क्रम कायम ठेवण्यासाठी, घटक (आता Y[0] वर) त्याच्या Y[] मधील योग्य ठिकाणी स्थानांतरित करा.
पहिल्या अॅरेचा आकार m आहे आणि दुसऱ्या अॅरेचा आकार n आहे आणि वेळेची जटिलता O(mn) आहे.
21. पर्यायी उच्च आणि निम्न स्थानांमध्ये आयटमची अॅरे कशी पुनर्क्रमित करावी?
पूर्णांक अॅरेची पुनर्रचना करा जेणेकरून प्रत्येक पुढील सदस्य आधीच्या आणि पुढील घटकांपेक्षा मोठा असेल. अॅरेमध्ये कोणतेही डुप्लिकेट घटक समाविष्ट नाहीत असे गृहीत धरा.
प्रभावी दृष्टिकोनासाठी अॅरेची क्रमवारी लावणे किंवा अतिरिक्त जागा वापरणे आवश्यक नाही. अॅरेच्या दुसऱ्या सदस्यापासून सुरुवात करणे आणि प्रत्येक लूप पुनरावृत्तीसाठी दोनने वर जाण्याची योजना आहे.
जर शेवटचा घटक पहिल्या घटकापेक्षा जास्त असेल तर घटकांची अदलाबदल करा. तत्सम शिरामध्ये, खालील घटक वर्तमान घटकापेक्षा मोठा असल्यास दोन्ही आयटम स्विच करा. आम्ही लूपच्या शेवटी निर्दिष्ट निर्बंधांचे पालन करणारा इच्छित अॅरे प्राप्त करू.
22. अॅरेमधील प्रत्येक घटकाच्या गुणाकारासह डिव्हिजन ऑपरेटर न वापरता अॅरेच्या प्रत्येक घटकाला कसे बदलायचे?
डिव्हिजन ऑपरेटर न वापरता, पूर्णांक अॅरेमधील प्रत्येक घटक इतर सर्व घटकांच्या उत्पादनासह बदला.
रेखीय वेळ आणि स्थिर जागेत, आम्ही या समस्येचे निराकरण करण्यासाठी पुनरावृत्तीचा वापर करू शकतो. उजव्या सबअरेमधील प्रत्येक घटकाच्या उत्पादनांची आवर्तीपणे गणना करणे आणि डाव्या सबअरे उत्पादनास फंक्शन पॅरामीटर्स म्हणून पास करणे ही कल्पना आहे.
वेळेची जटिलता O(n) आहे.
23. लॉगरिदमिक वेळेत अॅरेमधील सर्वात विचित्र घटक शोधा
एक पूर्णांक अॅरे दिलेला आहे ज्यामध्ये एका सदस्याशिवाय इतर सर्वांमध्ये घटनांची संख्या आहे, हा एक घटक किती वेळा दिसून येतो हे निर्धारित करण्यात समस्या आहे. अॅरेमध्ये समान घटक जोड्यांमध्ये आढळल्यास आणि एका ओळीत दिलेल्या घटकाच्या दोनपेक्षा जास्त घटना कधीच असू शकत नाहीत तर लॉगरिदमिक वेळेत आणि स्थिर जागेत विषम घटक शोधा.
XOR ऑपरेशनमुळे आम्हाला ही समस्या रेषीय वेळेत सोडवता येते. अॅरेमधील प्रत्येक घटकाला XOR करणे हे ध्येय आहे. सम घडणारे घटक एकमेकांना रद्द केल्यानंतर फक्त विषम घटक शिल्लक राहतात.
ही समस्या O(log(n)) वेळेत देखील सोडवली जाऊ शकते.
24. वर्तुळाकार अॅरेमध्ये प्रत्येक घटकासाठी त्यानंतरचे मोठे घटक कसे मिळवायचे?
वर्तुळाकार पूर्णांक अॅरेमधील प्रत्येक घटकासाठी पुढील मोठा घटक स्थित असावा. अॅरेमधील घटक x नंतरचा पहिला मोठा पूर्णांक हा त्या घटकाचा त्यानंतरचा मोठा घटक असतो.
उजवीकडून डावीकडे, आम्ही अॅरे आयटमवर कार्य करू शकतो. स्टॅक रिकामा होईपर्यंत किंवा त्याच्या वर एक उच्च घटक येईपर्यंत प्रत्येक घटक x साठी लूप करणे हे ध्येय आहे. x चा पुढील मोठा घटक स्टॅकच्या वर दिसण्यासाठी सेट करा.
25. अॅरेची व्युत्क्रम संख्या शोधा?
अॅरेच्या व्युत्क्रमांची एकूण संख्या शोधा. एक जोडी I j) हे अॅरे A चे व्युत्क्रम असेल तर I j) आणि (A[i] > A[j]). आपण यापैकी प्रत्येक जोडी अॅरेमध्ये मोजली पाहिजे.
पेक्षा कमी असलेल्या सर्व अॅरे सदस्यांना त्याच्या उजवीकडे मोजणे आणि आउटपुटमध्ये परिणाम जोडणे हा एक सरळ दृष्टीकोन आहे.
या सोल्यूशनमध्ये O(n2) जटिलता आहे, जेथे n इनपुटचा आकार आहे.
26. रेन वॉटर ट्रॅपिंगची समस्या काय आहे?
दिलेल्या पट्ट्यांमध्ये प्रत्येकी एक युनिट रुंदी असलेल्या पट्ट्यांमध्ये अडकून पडू शकणारे सर्वाधिक पाणी शोधणे याला “ट्रॅपिंग पर्जन्यमान” समस्या म्हणून ओळखले जाते.
प्रत्येक बारच्या डावीकडे आणि उजवीकडे ठेवता येणारी सर्वोच्च पट्टी निश्चित करणे हे ध्येय आहे. डावीकडे आणि उजवीकडे अग्रगण्य पट्ट्यांची किमान, सध्याच्या पट्टीच्या उंचीपेक्षा कमी, प्रत्येक पट्टीच्या वर साठवलेल्या पाण्याचे प्रमाण आहे.
निष्कर्ष
इतर डेटा संरचना विषयांच्या तुलनेत, अॅरे सोपे आहेत. अॅरे मुलाखतीच्या प्रश्नांना उत्तीर्ण करण्यासाठी, तुम्हाला अॅरेची मूलभूत माहिती असणे आवश्यक आहे.
अॅरे इंटरव्ह्यू प्रश्नांची यशस्वीपणे उत्तरे देण्यासाठी तुम्ही अॅरे ऑपरेशन्स (अॅरे घोषित करणे/तयार करणे ते अॅरे आयटम्स ऍक्सेस करणे/बदलणे) तसेच लूप, रिकर्शन आणि बेसिक ऑपरेटर्स सारख्या प्रोग्रामिंग संकल्पनांसह अॅरेच्या पायाचे विस्तृतपणे पुनरावलोकन केले पाहिजे. समस्या पूर्णपणे ओळखा.
तुम्हाला काही शंका असल्यास तुम्ही स्पष्टीकरण घ्यावे. समस्या अधिक व्यवस्थापित करण्यायोग्य भागांमध्ये विभाजित करण्याचा विचार करा. तुम्ही प्रोग्रामिंग सुरू करण्यापूर्वी तुमच्या मनात अल्गोरिदम असल्याची खात्री करा; ते लिहा किंवा फ्लोचार्टमध्ये दृश्यमान करा. नंतर कोड लिहायला सुरुवात करा.
प्रत्युत्तर द्या