में किसी सरणी में डुप्लिकेट खोजें ओ (एन) समय में एन तत्वों की सरणी में सभी डुप्लिकेट तत्वों को खोजने का कोई तरीका है?ओ (एन) समय
उदाहरण:
इनपुट: 11, 29, 81, 14, 43, 43, 81, 29
आउटपुट: 29, 81, 43
इनपुट छंटाई और डुप्लिकेट का पता लगाने के एक रेखीय स्कैन करने के क्रम नष्ट कर देता है और उत्पादन देता है: 29,43,81।
छंटाई-दर-कुंजी सूचकांकों का एक और सरणी {0,1,...N-1}
दिया सरणी के अनुसार {1,4,2}
पाने के लिए और उसके बाद सूचकांकों की परिणामी सेट छँटाई पाने के लिए {1,2,4}
हमें {29,81,43}
दे देंगे, लेकिन इस O(N logN)
समय लगता है।
क्या इस समस्या को हल करने के लिए ओ (एन) एल्गोरिदम है?
पीएस मैं जोड़ना भूल गया: मैं हैश टेबल का उपयोग नहीं करना चाहता। मैं एक गैर-हैश समाधान की तलाश में हूं।
तो अंतरिक्ष एक प्रतिबंध नहीं है, हैश पर प्रत्येक तत्व की दुकान। जब एक टक्कर होती है , आपके पास डुप्लिकेट है। – Anurag
@Anurag: इसमें सबसे अच्छा मामला/औसत चलने का समय ओ (एन) है लेकिन सबसे खराब मामला ओ (एन 2) –
@Anurag: क्या है _exactly_ का मतलब हैश द्वारा है? –