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

पायथन में जांचें कि कोई ऐरे सॉर्टेड और रोटेटेड है या नहीं

मान लीजिए हमारे पास n अद्वितीय मानों का एक ऐरे है। हमें यह जांचना है कि क्या यह ऐरे सॉर्टेड और एंटी-क्लॉकवाइज रोटेटेड है। यहां कम से कम एक रोटेशन आवश्यक है, इसलिए पूरी तरह से सॉर्टेड ऐरे को सॉर्टेड और रोटेटेड नहीं माना जाता।

उदाहरण के लिए, यदि इनपुट nums = [4,5,6,8,1,3] है, तो आउटपुट True होगा क्योंकि हम इसे दो बार क्लॉकवाइज दिशा में रोटेट करके सॉर्टेड [1, 3, 4, 5, 6, 8] प्राप्त कर सकते हैं।

समाधान दृष्टिकोण

एक सॉर्टेड और रोटेटेड ऐरे में न्यूनतम तत्व "पिवट" होता है। इसके दोनों ओर के उप-सरणी सॉर्टेड होने चाहिए, और अंतिम तत्व पहले तत्व से छोटा होना चाहिए।

एल्गोरिदम चरण:

  1. न्यूनतम तत्व और उसका इंडेक्स ढूंढें
  2. न्यूनतम इंडेक्स से पहले के भाग की जांच करें कि वह सॉर्टेड है या नहीं
  3. न्यूनतम इंडेक्स के बाद के भाग की जांच करें कि वह सॉर्टेड है या नहीं
  4. यदि दोनों भाग सॉर्टेड हैं और nums[-1] < nums[0], तो True लौटाएं
  5. अन्यथा False लौटाएं

पायथन कार्यान्वयन

def solve(nums):
    min_element = min(nums)
    min_index = nums.index(min_element)
    
    # न्यूनतम से पहले का भाग जांचें
    before_sorted = True
    for i in range(1, min_index):
        if nums[i] < nums[i-1]:
            before_sorted = False
            break
    
    # न्यूनतम के बाद का भाग जांचें
    after_sorted = True
    for i in range(min_index + 1, len(nums)):
        if nums[i] < nums[i-1]:
            after_sorted = False
            break
    
    if before_sorted and after_sorted and nums[-1] < nums[0]:
        return True
    return False

nums = [4, 5, 6, 8, 1, 3]
print(solve(nums))  # True

इनपुट

[4,5,6,8,1,3]

आउटपुट

True

व्याख्या:

ऐरे [4,5,6,8,1,3] में न्यूनतम तत्व 1 इंडेक्स 4 पर है।

  • इससे पहले: [4,5,6,8] - सॉर्टेड ✓
  • इसके बाद: [3] - सॉर्टेड ✓
  • अंतिम तत्व (3) < पहला तत्व (4) ✓

इसलिए यह सॉर्टेड और रोटेटेड ऐरे है।

  1. - पायथन में रोटेटेड सॉर्टेड सरणी में खोज

    मान लीजिए हमारे पास एक सरणी है जो आरोही क्रम में सॉर्टेड है, और वह किसी अज्ञात पिवट पर घुमाई गई है। उदाहरण के लिए, [0,1,2,4,5,6,7] [4,5,6,7,0,1,2] बन सकता है। हमें खोजने के लिए एक लक्ष्य मान दिया गया है। यदि हम इसे सरणी में पा सकते हैं, तो इसका इंडेक्स लौटाएं, अन्यथा -1 लौटाएं। हम मान सकते हैं कि सर

  1. - पायथन में क्रमबद्ध सरणी मर्ज करें

    मान लीजिए हमारे पास दो क्रमबद्ध सरणी A और B हैं। हमें उन्हें मर्ज करना है और केवल एक क्रमबद्ध सरणी C बनाना है। सूचियों का आकार भिन्न हो सकता है। उदाहरण के लिए, मान लीजिए A = [1,2,4,7] और B = [1,3,4,5,6,8], तो मर्ज की गई सूची C [1,1,2,3,4,4,5,6,7,8] होगी। हल करने के चरण i := 0, j := 0 और end := A क

  1. - पायथन में a.sort, sorted(a), np.argsort(a) और np.lexsort(b, a)

    डेटा तत्वों को एक विशिष्ट क्रम में व्यवस्थित करना एक बार-बार आवश्यक संक्रिया है। सरणी में तत्वों को सॉर्ट करने के लिए, पायथन sorted() और array.sort() नामक फ़ंक्शन का उपयोग करता है। sorted(array) यह फ़ंक्शन मूल सरणी को संशोधित किए बिना एक सॉर्ट की गई सरणी लौटाता है। a = [9, 5, 3, 1, 12, 6] b = sort