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

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

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

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

  • n := A का आकार
  • left के लिए n - 2 से -1 तक नीचे की रेंज में
    • यदि left = -1, तो A लौटाएं, अन्यथा जब A[left] > A[left + 1], तो ब्रेक करें
  • element := 0, index := 0
  • right के लिए left + 1 से n तक की रेंज में
    • यदि A[right] < A[left] और A[right] > element, तो
      • element = A[right]
      • index := right
  • A[left] और A[index] को स्वैप करें
  • 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. Python Tkinter में एक लाइन में कई लेबल कैसे प्रदर्शित करें? Python Tkinter में एक लाइन में कई लेबल कैसे प्रदर्शित करें?

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

  1. पायथन Pygame: विंडो पर इमेज (चित्र) प्रदर्शित करना पायथन Pygame: विंडो पर इमेज (चित्र) प्रदर्शित करना

    Pygame में इमेज लोड और डिस्प्ले इमेज फ़ाइल लोड करें → convert() से ऑप्टिमाइज़ करें → blit() से स्क्रीन पर खींचें। पूर्ण कोड उदाहरण import pygame pygame.init() w, h = 300, 300 screen = pygame.display.set_mode((w, h)) pygame.display.set_caption(Tutorialspoint Logo) # इमेज लोड और कन्वर्ट (तेज़ ब्लि

  1. - पायथन में timeit मॉड्यूल: उदाहरणों के साथ

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