Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में डुप्लिकेट नंबर ढूंढें

मान लीजिए हमारे पास एक ऐरे nums है जिसमें n + 1 पूर्णांक हैं। सदस्य 1 से n की रेंज में हैं। साबित करें कि कम से कम एक डुप्लिकेट नंबर अवश्य होगा। मान लें कि केवल एक डुप्लिकेट नंबर है, हमें उस डुप्लिकेट एलिमेंट को ढूंढना है। इसलिए यदि ऐरे [1,3,4,2,2] जैसा है, तो डुप्लिकेट एलिमेंट 2 होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • a := nums[0] और b := nums[0]
  • जब तक True
    • a := nums[nums[a]]
    • b := nums[b]
    • यदि a = b, तो ब्रेक करें
  • ptr := nums[0]
  • जब तक ptr, b नहीं है
    • ptr := nums[ptr]
    • b := nums[b]
  • ptr लौटाएं

यह फ्लॉयड का टॉरटॉइज़ और हेयर (साइकिल डिटेक्शन) एल्गोरिदम है।

बेहतर समझ के लिए निम्न कार्यान्वयन देखें -

उदाहरण

class Solution(object):
    def findDuplicate(self, nums):
        hare = nums[0]
        tortoise = nums[0]
        while True:
            hare = nums[nums[hare]]
            tortoise = nums[tortoise]
            if hare == tortoise:
                break
        ptr = nums[0]
        while ptr != tortoise:
            ptr = nums[ptr]
            tortoise = nums[tortoise]
        return ptr

ob1 = Solution()
print(ob1.findDuplicate([3, 1, 3, 4, 2]))

इनपुट

[3,1,3,4,2]

आउटपुट

3
  1. Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है। यहां हम या तो सूची को क्रमबद्ध करके सबसे छोटा तत्व प्राप्त कर सकते हैं या बिल्ट-इन min() फ़ंक्शन का उपयोग करके सबसे छोटा तत्

  1. - Python में संख्याओं की सूची में सबसे बड़ी संख्या कैसे खोजें?

    Python में सूची से अधिकतम संख्या खोजना Python की बिल्ट-इन लाइब्रेरी फ़ंक्शन max() एक इटरेबल या कॉमा सेपरेटेड संख्याओं की सूची में सबसे बड़ी संख्या लौटाता है। >>> max(10, 23, 43, 21) 43 >>> l1 = [4, 7, 2, 9, 1] >>> max(l1) 9

  1. - पायथन फंक्शन के आर्गुमेंट्स की संख्या कैसे पता करें?

    मान लीजिए qux.py नामक एक स्क्रिप्ट निम्नानुसार है: #qux.py def aMethod1(arg1, arg2): pass def aMethod2(arg1,arg2, arg3, arg4, arg5): pass मान लें कि आपके पास इस स्क्रिप्ट की सामग्री तक पहुंच नहीं है, आप दिए गए फंक्शन में आर्गुमेंट्स की संख्या निम्नानुसार पता लगा सकते हैं: पायथन फंक्शन के अंद