Competitive Programming Academy · पाठ

In Place Duplicates हटाना

धीमे और तेज़ pointer की जोड़ी का उपयोग करें

पाठ 3, कुल 4 में से13 चरण

In Place Duplicates हटाना, CoddyKit पर Competitive Programming Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Competitive Programming Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Competitive Programming Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

स्थान पर दोहराव हटाएँ

दिए गए क्रमबद्ध ऐरे में बिना किसी अतिरिक्त ऐरे के हर मान की एक प्रति रखें। स्थान पर काम करने से मेमोरी बचती है और यह साक्षात्कारों में पूछा जाने वाला एक सामान्य प्रश्न है। 🧹

क्रमबद्धता क्यों मदद करती है

जब ऐरे क्रमबद्ध होता है, तो हर दोहराया हुआ मान अपने समान मान के ठीक बगल में होता है। इसलिए आपको पूरे ऐरे से नहीं, केवल पड़ोसी मानों से तुलना करनी पड़ती है।

दो भूमिकाएँ, दो पॉइंटर

एक धीमा पॉइंटर रखें, जो आखिरी सुरक्षित मान को दर्शाए, और एक तेज़ पॉइंटर रखें, जो आगे स्कैन करके नया मान खोजे।

slow = 0
fast = 1

धीमा पॉइंटर लिखता है

धीमे पॉइंटर को लिखने की स्थिति समझें: उसके स्थान तक और उससे पहले की हर चीज़ पहले ही साफ़ और अद्वितीय है।

तेज़ पॉइंटर पढ़ता है

तेज़ पॉइंटर केवल आगे पढ़ता है। वह आगे बढ़ता रहता है और जब उसे अभी तक सुरक्षित न किया गया मान मिलता है, तभी धीमे पॉइंटर को संकेत देता है।

दोहराव छोड़ दें

यदि a[fast], a[slow] के बराबर है, तो वह दोहराव है। इसलिए तेज़ पॉइंटर को आगे बढ़ाने के अलावा कुछ न करें। दोहराया हुआ मान चुपचाप पार हो जाएगा।

for fast in range(1, n):
    if a[fast] == a[slow]:
        continue

कुछ नया मिला

जब a[fast] अलग हो, तो धीमे पॉइंटर को आगे बढ़ाएँ और नया मान वहाँ कॉपी करें। इससे पुराने दोहराव नए अद्वितीय डेटा से बदल जाते हैं।

    else:
        slow += 1
        a[slow] = a[fast]

उत्तर लंबाई है

स्कैन के बाद slow + 1 अद्वितीय मानों की संख्या होती है, जो सभी ऐरे के आरंभ में एक साथ रखे होते हैं।

return slow + 1

अंतिम भाग को अनदेखा करें

अद्वितीय प्रारंभिक भाग के बाद जो कुछ भी है, वह बचा हुआ अनावश्यक डेटा है। समस्या केवल पहले slow + 1 तत्वों से संबंधित है, इसलिए अंतिम भाग को वैसा ही छोड़ दें।

खाली ऐरे का ध्यान रखें

एक खाली ऐरे में अद्वितीय मानों की संख्या शून्य होती है। शुरू करने से पहले n == 0 की जाँच करें, ताकि अंत से आगे पढ़ने की कोशिश न हो।

if n == 0:
    return 0

एक पास, अतिरिक्त स्थान नहीं

यह धीमा-तेज़ तरीका O(n) समय और O(1) अतिरिक्त स्थान में चलता है, जो कड़ी मेमोरी सीमाओं के लिए बिल्कुल उपयुक्त है।

त्वरित जाँच

आप धीमे और तेज़ पॉइंटर की सहायता से क्रमबद्ध ऐरे में स्थान पर दोहराव हटा रहे हैं।

पुनरावलोकन

क्रमबद्ध ऐरे में धीमे-तेज़ पॉइंटरों की जोड़ी बिना अतिरिक्त स्थान के एक O(n) पास में दोहराव हटा देती है और अद्वितीय मानों की संख्या के रूप में slow + 1 लौटाती है। 🎉

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “In Place Duplicates हटाना” पाठ निःशुल्क है?

हाँ—“In Place Duplicates हटाना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Competitive Programming Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Competitive Programming Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“In Place Duplicates हटाना” में मैं क्या सीखूँगा?

धीमे और तेज़ pointer की जोड़ी का उपयोग करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Competitive Programming Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Competitive Programming Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Competitive Programming Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“In Place Duplicates हटाना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Competitive Programming Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Competitive Programming Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Sorted Array पर Two Pointers
  2. दिए गए Sum वाला Pair खोजना
  3. In Place Duplicates हटाना
  4. दो Sorted Sequences को Merge करना
← Competitive Programming Academy पर वापस जाएँ