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

पायथन में एक स्वैप के साथ पिछला क्रमपरिवर्तन

मान लीजिए कि हमारे पास सकारात्मक पूर्णांकों की एक सरणी ए है (जरूरी नहीं कि अद्वितीय), हमें लेक्सिकोग्राफिक रूप से सबसे बड़ा क्रमपरिवर्तन खोजना है जो ए से छोटा है, जिसे एक स्वैप के साथ बनाया जा सकता है (ए स्वैप दो नंबर ए [i] की स्थिति का आदान-प्रदान करता है और ए [जे])। यदि यह संभव नहीं है, तो उसी सरणी को वापस करें। तो अगर सरणी [3,2,1] की तरह है, तो आउटपुट [3,1,2] होगा, 2 और 1 को स्वैप करके

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

  • n :=A का आकार
  • बाईं ओर n - 2 से नीचे -1 के लिए
    • यदि बायां =-1 है, तो ए वापस करें, अन्यथा जब ए [बाएं]> ए [बाएं + 1], फिर तोड़ दें
  • तत्व:=0, अनुक्रमणिका:=0
  • बाएं से दाएं + 1 से n के लिए
    • यदि A[दाएं] तत्व, तो
      • तत्व =ए[दाएं]
      • सूचकांक:=दाएं
  • स्वैप A[बाएं] और A[सूचकांक]
  • वापसी ए

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

उदाहरण

class Solution(object):
   def prevPermOpt1(self, A):
      n = len(A)
      for left in range(n-2,-2,-1):
         if left == -1:
            return A
         elif A[left]>A[left+1]:
            break
      element = 0
      index = 0
      for right in range(left+1,n):
         if A[right]<A[left] and A[right]>element:
            element = A[right]
            index = right
      temp = A[left]
      A[left] = A[index]
      A[index] = temp
      return A
ob = Solution()
print(ob.prevPermOpt1([4,2,3,1,3]))

इनपुट

[4,2,3,1,3]

आउटपुट

[4, 2, 1, 3, 3]

  1. पायथन टिंकर के साथ एक पंक्ति में एकाधिक लेबल कैसे प्रदर्शित करें?

    पायथन टिंकर के साथ एक पंक्ति में कई लेबल प्रदर्शित करने के लिए, हम लेबल के पैक () विधि का उपयोग कर सकते हैं और सभी लेबलों को एक ही तरफ संरेखित कर सकते हैं। आइए एक उदाहरण लें और देखें कि एक पंक्ति में एकाधिक लेबल कैसे प्रदर्शित करें। कदम - आवश्यक पुस्तकालयों को आयात करें और टिंकर फ्रेम का एक उदाहर

  1. पायथन - PyGame के साथ चित्र प्रदर्शित करें

    Pygame गेम और मल्टीमीडिया एप्लिकेशन बनाने के लिए Python के लिए एक मल्टीमीडिया लाइब्रेरी है। इस लेख में हम देखेंगे कि pygame विंडो में इसकी ऊंचाई, चौड़ाई और स्थिति को ध्यान में रखते हुए स्क्रीन पर चित्र को पेंट करने के लिए pygame मॉड्यूल का उपयोग कैसे करें। नीचे दिए गए प्रोग्राम में हम pygame मॉड्यू

  1. उदाहरण के साथ पायथन में टाइमिट?

    पायथन कोड के एक टुकड़े के निष्पादन के समय को मापने के लिए पायथन कई तरीके प्रदान करता है। एक तरीका यह है कि पायथन इनबिल्ट टाइम मॉड्यूल का उपयोग करें और प्रोग्राम के निष्पादन से पहले और बाद में समय बचाएं? पायथन टाइमिट जब कोई प्रोग्राम चल रहा होता है, तो उस कोड को एक्जीक्यूटेबल बनाने के लिए बैकग्राउंड