मुझे यहाँ स्वीकार करना होगा, कि मैं उन लोगों में से एक हूँ जो साक्षात्कार में एल्गोरिथ्म के प्रश्न पूछना पसंद करते हैं, लेकिन मुझे तनाव देना होगा, कि प्रश्न का वास्तविक उत्तर बिल्कुल अप्रासंगिक है। मुझे इस बात की जरा भी परवाह नहीं है कि साक्षात्कारकर्ता को उत्तर पता है या नहीं। इसके बजाय, मेरे लिए, यह प्रश्न विभिन्न पहलुओं को लक्षित करता है, जैसे कि निम्नलिखित - महत्व के क्रम में:
आवश्यकताएँ
इस तरह के सवालों को जानबूझकर कम-निर्दिष्ट किया जाता है। आपके उदाहरण में, अनुक्रम के बारे में अधिक विवरण नहीं दिए गए हैं। यदि आपके पास एक साक्षात्कारकर्ता है जो आपसे पूछता है कि क्या ये संख्याएं वास्तव में क्रमबद्ध हैं, तो यह एक अच्छा संकेत है। ग्राहकों को आगे के विवरण के बारे में पूछने के लिए उनकी सही मानसिकता है, जो कम समय में बेहतर समाधान के लिए आने में मदद करेगा। उम्मीदवार N संख्याओं की एक सरणी को संग्रहीत करने के लिए O (n) स्थान का उपयोग करने के विचार के साथ भी खिलौना कर सकता है, लेकिन उसे ऐसा नहीं करना चाहिए कि X और Y पर अधिक विवरण के बारे में पूछे बिना कहें कि X और Y 1 और 1000 के बीच हैं। , तो यकीन है, आगे बढ़ो और एक सरणी आधारित समाधान आग। लेकिन अगर मैं आपको बताता हूं कि अंतराल 1 और 1 बिलियन है, तो समस्या पूरी तरह से अलग हो जाती है। मुझे फिर से तनाव दें, कि मुझे समाधान की परवाह नहीं है।
मानक तकनीक
मैं एक प्रोग्रामर को किराए पर नहीं लेना चाहता जो ओ (एन) का मतलब भी नहीं जानता है। अगर आपको उस क्षेत्र में कोई भी अच्छी शिक्षा दी जाती है, तो इसे अवश्य जानना चाहिए। लेकिन यह न केवल जानना महत्वपूर्ण है कि इसका क्या अर्थ है, बल्कि वास्तव में उस ज्ञान को लागू करना है। आपके उदाहरण में, मैं एक उम्मीदवार को यह महसूस करना चाहता हूं कि उसे डेटा को सॉर्ट करने की अनुमति नहीं है (बिना किसी अन्य प्रश्न के एक बाल्टी सॉर्ट या अन्य ओ (एन) सॉर्ट अप्रोच) के विकल्प के लिए आवश्यक ओ (एन लॉग एन) को सॉर्ट करने के कारण सामान्य रूप में।
इसी तरह, अन्य एल्गोरिथ्म प्रश्न मानक तकनीकों जैसे पेड़- या ग्राफ-ट्रैवर्सल, या पुनरावृत्ति को लक्षित करते हैं। एक उम्मीदवार इन तकनीकों में से एक पर फिसल सकता है, जो एक अच्छा प्रभाव नहीं बनाता है। ऐसे मामलों में, हालांकि, मुझे यह पता लगाने के लिए गहरा खुदाई करना पसंद है कि क्या उम्मीदवार के पास कोई भी सीएस पृष्ठभूमि है। बेशक, यह इस पर निर्भर करता है कि लक्ष्य की स्थिति क्या है, लेकिन आमतौर पर एक डेवलपर जो रनटाइम जटिलताओं के बारे में नहीं जानता है, न ही विशिष्ट डेटा संरचनाएं और उनके ट्रैवर्सल्स, कोई मदद नहीं करने जा रहे हैं।
समस्या-व्यवहार मानसिकता
प्रश्न पूछने के बाद, आप उम्मीदवार को बारीकी से देखते हैं। वह कैसे प्रतिक्रिया देता है? आपको यहां उन उम्मीदवारों से सबसे अच्छे परिणाम मिलते हैं, जिनके पास पहली बार में समस्या को हल करने के बारे में कोई सुराग नहीं है । उस संबंध में, प्रश्न यह जांचता है कि बाद में कार्यस्थल पर ऐसी ही स्थिति होने पर क्या हो सकता है। आपके विकास के दौरान आप इस तरह की समस्या के पार हो सकते हैं, और यह जानना अच्छा है कि आपका उम्मीदवार इन समस्याओं से कैसे निपटता है, भले ही वह खुद से यह सब हल करने में सक्षम न हो।
उदाहरण: आप अपने उम्मीदवार को अगले आधे घंटे के लिए मूक मोड में नहीं जाना चाहते हैं! जांचें कि क्या वह बुद्धिमान प्रश्नों के साथ आ सकता है (आवश्यकताओं को देखें), जांचें कि क्या वह बॉक्स से बाहर निकलना शुरू कर देता है जब उसे पता चलता है कि वह ऐसा नहीं कर सकता है। यहां तक कि "फन" काउंटर-क्वेश्चन जैसे "क्या मैं फोन-ए-को-वर्कर विकल्प का उपयोग कर सकता हूं?" एक अच्छा संकेत है।
कैसे जवाब दें
सामान्य तौर पर, इस तरह के प्रश्नों के लिए आप जो सबसे अच्छे उत्तर दे सकते हैं, वे काउंटर-प्रश्न हैं! एक उत्तर को सही-सही बता देना मूल रूप से पूरी बात को विफल कर देता है, और वास्तव में यह एक अच्छा उत्तर नहीं है, क्योंकि ये सभी प्रश्न व्यापार-बंदों पर संकेत देते हैं, जो आपके उत्तर का अर्थ है, आपके बिना आवश्यक जानकारी अभी तक समझदारी से बनाने के लिए नहीं है अदला - बदली। बेशक, काउंटर-प्रश्नों की गुणवत्ता उम्मीदवारों के बीच भिन्न होती है।
साक्षात्कार के सवालों पर एक सामान्य नोट के रूप में: काउंटर-प्रश्न शायद ही कभी एक बुरी बात है। अपने स्वयं के एक साक्षात्कार में मैं उदाहरण के लिए कुछ इस तरह से पूछा गया था: "यदि आपको एक्स को लागू करना होगा, तो क्या आप उसके लिए C ++ या Java चुनेंगे, और क्यों?" - मैं बस "क्या मैं इन दोनों तक सीमित हूं?" अपने लिए अनुमान करें, इस तरह के प्रति-प्रश्न के लिए एक साक्षात्कारकर्ता से आपको किस तरह की प्रतिक्रिया मिलती है - और वास्तव में साक्षात्कारकर्ता को यह दिखाना आपके लिए कितना आसान हो जाता है कि आप क्या करने में सक्षम हैं।
find the missing element in O(N) or better
कि इस संदर्भ में "या बेहतर" क्या मतलब है? ऐसा लगता है कि लूप के दौरान एक साधारण से हल किया जाएगा, लेकिन वैसे भी मुझे समझ में नहीं आता है - यह या तो हल है या हल नहीं है , है ना?