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 का आकार

  • मेरे लिए 0 से n की सीमा में, करें

    • ए [ए [i] मॉड के]:=ए [ए [i] मॉड के] + के

  • max_val :=A[0]

  • परिणाम:=0

  • 1 से n की सीमा में i के लिए, करें

    • अगर A[i]> max_val, तो

      • max_val:=ए[i]

      • परिणाम:=मैं

  • वापसी परिणाम

उदाहरण

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

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. पायथन में O(n) समय और O(1) स्थान में BST का माध्यिका ज्ञात कीजिए

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

  1. सूची में सबसे छोटी संख्या खोजने के लिए पायथन प्रोग्राम

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

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

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