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

पायथन में अधिकतम चौड़ाई रैंप खोजने का कार्यक्रम

मान लीजिए कि हमारे पास एक सरणी संख्या है, एक रैंप एक टपल (i, j) है जिसके लिए i

इसलिए, यदि इनपुट nums =[6,0,8,2,1,5] की तरह है, तो आउटपुट 4 होगा क्योंकि अधिकतम चौड़ाई रैंप (i, j) =(1, 5) और nums पर हासिल की जाती है। [1] =0 और अंक [5] =5.

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

  • बी:=एक नया नक्शा

  • मेरे लिए 0 से लेकर अंकों के आकार तक, करें

    • एक्स:=अंक [i]

    • यदि x, B में है, तो

      • B[x]

        . के अंत में i डालें
    • अन्यथा,

      • बी [एक्स]:=[i]

  • मिनी:=एक सूची शुरू में इसमें एक इंफ स्टोर करती है

  • मैक्सी :=एक सूची शुरू में एक -इन को इसमें संग्रहित करती है

  • प्रत्येक एक्स के लिए बी की सभी चाबियों की सूची सूची को क्रमबद्ध करें, करें

    • मिनी के अंतिम तत्व का न्यूनतम और मिनी के अंत में न्यूनतम B[x] डालें

  • प्रत्येक एक्स के लिए बी की सभी चाबियों की उलटी क्रमबद्ध सूची में, करें

    • मिनी के अंतिम तत्व का न्यूनतम और मिनी के अंत में न्यूनतम B[x] डालें

  • मैक्सी:=रिवर्स मैक्सी फिर सबरे को शुरू से दूसरे अंतिम तत्व तक ले जाएं

  • मिनी :=मिनी का सबरे [इंडेक्स 1 से अंत तक]

  • पी:=0

  • रेस :=-इन्फ

  • जबकि p <मिनी का आकार, करें

    • रेस :=अधिकतम रेस और (मैक्सी[पी] - मिनी[पी])

    • पी:=पी + 1

  • रिटर्न रेस

उदाहरण

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

def solve(nums):
   B = {}
   for i in range(len(nums)):
      x = nums[i]
      if x in B:
         B[x].append(i)
      else:
         B[x] = [i]

   mini = [float('inf')]
   maxi = [float('-inf')]
   for x in sorted(B.keys()):
      mini.append(min(mini[-1], min(B[x])))

   for x in sorted(B.keys(), reverse = True):
      maxi.append(max(maxi[-1], max(B[x])))

   maxi = maxi[::-1][:-1]
   mini = mini[1:]

   p = 0
   res = float('-inf')
   while p < len(mini):
      res = max(res, maxi[p] - mini[p])
      p += 1

   return res

nums = [6,0,8,2,1,5]
print(solve(nums))

इनपुट

[6,0,8,2,1,5]

आउटपुट

4

  1. पायथन में अधिकतम भवन ऊंचाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक मान n है और जोड़े की एक और सूची है जिसे प्रतिबंध कहा जाता है। हम एक शहर में नई इमारतें बनाना चाहते हैं। लेकिन कुछ प्रतिबंध हैं। हम एक लाइन में बना सकते हैं और इमारतों को 1 से n तक लेबल किया जाता है। प्रतिबंधों के दो पैरामीटर हैं, इसलिए प्रतिबंध [i] =(id_i, max_height_i) इंग

  1. पायथन में एक बाइनरी ट्री की अधिकतम चौड़ाई खोजने का कार्यक्रम

    मान लीजिए हमारे पास एक बाइनरी ट्री है, हमें ट्री में किसी भी स्तर की अधिकतम चौड़ाई ज्ञात करनी है। यहां एक स्तर की चौड़ाई उन नोड्स की संख्या है जो सबसे बाएं नोड और सबसे दाएं नोड के बीच हो सकते हैं। तो, अगर इनपुट . जैसा है तो आउटपुट 2 . होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे- न्य

  1. अधिकतम तीन नंबर खोजने के लिए पायथन प्रोग्राम

    इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो तीन अंकों से अधिकतम राशि का पता लगाता है। हमारे पास तीन संख्याएँ होंगी, और हमारा लक्ष्य उन तीन संख्याओं में से अधिकतम संख्या ज्ञात करना है। आइए बेहतर समझ के लिए कुछ नमूना परीक्षण मामलों को देखें। Input: a, b, c = 2, 34, 4 Output: 34 Input: a