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

पायथन में O(n) समय और O(1) अतिरिक्त स्पेस में अधिकतम दोहराने वाली संख्या खोजें


मान लीजिए हमारे पास आकार n का एक ऐरे है, यदि ऐरे में तत्व 0 से k-1 की रेंज में हैं। जहां k एक धनात्मक पूर्णांक है और k <= n। हमें इस ऐरे में अधिकतम दोहराने वाली संख्या ढूंढनी है।

तो, यदि इनपुट k = 8 और A = [3, 4, 4, 6, 4, 5, 2, 8] जैसा है, तो आउटपुट 4 होगा।

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

  • n := A का आकार

  • i को 0 से n तक के लिए, करें:

    • A[A[i] mod k] := A[A[i] mod k] + k

  • max_val := A[0]

  • result := 0

  • i को 1 से n तक के लिए, करें:

    • यदि A[i] > max_val, तो:

      • max_val := A[i]

      • result := i

  • result लौटाएं

उदाहरण

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

def get_max_repeating(A, k):    n = len(A)    for i in range(n):       A[A[i]%k] += k    max_val = A[0]    result = 0    for i in range(1, n):       if A[i] > max_val:          max_val = A[i]          result = i    return result A = [3, 4, 4, 6, 4, 5, 2, 8] k = 8 print(get_max_repeating(A, k))

इनपुट

[3, 4, 4, 6, 4, 5, 2, 8], 8

आउटपुट

4

  1. Python में BST का माध्यिका O(n) समय और O(1) स्थान में ढूंढना Python में BST का माध्यिका O(n) समय और O(1) स्थान में ढूंढना

    मान लीजिए हमारे पास एक बाइनरी सर्च ट्री (BST) है, हमें उसका माध्यिका ढूंढना है। हम जानते हैं कि सम संख्या में नोड्स के लिए, माध्यिका = ((n/2वां नोड + (n+1)/2वां नोड) / 2। विषम संख्या में नोड्स के लिए, माध्यिका = (n+1)/2वां नोड। तो, यदि इनपुट इस तरह है तो आउटपुट 7 होगा। इसे हल करने के लिए, हम इन चरण

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

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

  1. - Python का उपयोग करके संख्या का फैक्टोरियल कैसे खोजें?

    Python में संख्या का फैक्टोरियल खोजना किसी संख्या का फैक्टोरियल 1 और उस संख्या के बीच के सभी पूर्णांकों का गुणनफल होता है। दी गई संख्या का फैक्टोरियल खोजने के लिए, आइए 1 से उस संख्या तक की रेंज पर एक फॉर लूप बनाएं। याद रखें कि range() फ़ंक्शन स्टॉप मान को बाहर करता है। इसलिए स्टॉप मान इनपुट संख्या