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

Python में सशर्त आसन्न स्वैपिंग से सरणी को सॉर्ट करने की संभावना की जांच कैसे करें?

मान लीजिए हमारे पास nums नामक एक अनियंत्रित सरणी है और सभी तत्व 0 से n-1 की रेंज में हैं। हम nums में आसन्न तत्वों को जितनी बार चाहें स्वैप कर सकते हैं लेकिन केवल तभी जब इन तत्वों के बीच निरपेक्ष अंतर 1 हो। हमें यह जांचना है कि क्या हम nums को सॉर्ट कर सकते हैं या नहीं।

तो, यदि इनपुट nums = [1, 0, 3, 2, 5, 4] है, तो आउटपुट True होगा क्योंकि हम इन जोड़ियों [(1, 0), (3, 2), (5, 4)] को स्वैप करके [0, 1, 2, 3, 4, 5] सॉर्ट कर सकते हैं।

हल करने के चरण

  • रेंज 0 से nums के आकार - 2 तक के लिए i, करें:
    • यदि nums[i] > nums[i+1], तो:
      • यदि nums[i] - nums[i+1], 1 के समान है, तो:
        • nums[i] और nums[i+1] का आदान-प्रदान करें
      • अन्यथा,
        • False लौटाएं
  • True लौटाएं

उदाहरण

def solve(nums):
    for i in range(len(nums) - 1):
        if nums[i] > nums[i+1]:
            if nums[i] - nums[i+1] == 1:
                nums[i], nums[i+1] = nums[i+1], nums[i]
            else:
                return False
    return True

nums = [1, 0, 3, 2, 5, 4]
print(solve(nums))

इनपुट

[1, 0, 3, 2, 5, 4]

आउटपुट

True
  1. - Python - K मर्ज सॉर्ट कॉल्स की आवश्यकता वाली ऐरे ढूंढना

    मान लीजिए हमारे पास दो संख्याएं a और b हैं, हमें [1, a] रेंज में वैल्यूज़ वाली एक ऐरे ढूंढनी है जिसमें रिकर्सिव मर्ज सॉर्ट फंक्शन के ठीक b कॉल्स की आवश्यकता होती है। तो, यदि इनपुट a = 10, b = 15 जैसा है, तो आउटपुट [3, 1, 4, 6, 2, 8, 5, 9, 10, 7] होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:

  1. - पायथन में रिलेटिव सॉर्ट ऐरे

    मान लीजिए हमारे पास दो ऐरे arr1 और arr2 हैं, arr2 के एलिमेंट्स यूनिक हैं, और arr2 में मौजूद सभी एलिमेंट्स arr1 में भी मौजूद हैं। हमें arr1 के एलिमेंट्स को इस तरह सॉर्ट करना है कि arr1 में आइटम्स का रिलेटिव ऑर्डरिंग arr2 में जैसा है वैसा ही हो। यदि कुछ एलिमेंट्स हैं जो arr2 में मौजूद नहीं हैं, तो उन

  1. - पायथन में सरणी को सम-विषम के अनुसार क्रमबद्ध करें

    मान लीजिए, हमारे पास कुछ संख्याओं वाली एक सरणी A है। हमें संख्याओं को इस तरह व्यवस्थित करना है कि पहले सम संख्याएं आएं, फिर विषम संख्याएं। उदाहरण के लिए, यदि सरणी A = [1, 5, 6, 8, 7, 2, 3] है, तो परिणाम [6, 8, 2, 1, 5, 7, 3] जैसा होगा। हल करने के चरण i := 0 और j := 0 सेट करें जब तक j < सरणी का आका