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

पायथन में सबसे छोटा अनसॉर्टेड कंटीन्यूअस सबऐरे


मान लीजिए हमारे पास एक इंटीजर ऐरे है, हमें एक कंटीन्यूअस सबऐरे ढूंढना है जैसे कि यदि हम केवल उस सबऐरे को आरोही क्रम में सॉर्ट करें, तो पूरा ऐरे सॉर्ट हो जाए। हमें सबसे छोटे ऐसे सबऐरे की लंबाई आउटपुट करनी है। इसलिए यदि ऐरे [2,6,4,8,10,9,15] है, तो आउटपुट 5 होगा। सबऐरे [6,4,8,10,9] होगा।

समाधान के चरण

  • res := nums को सॉर्ट करके एक ऐरे बनाएं
  • ans := 0
  • r को एक लिंक्ड लिस्ट के रूप में सेट करें (व्यावहारिक रूप से एक खाली लिस्ट)
  • for i in range 0 से res की लंबाई तक
    • यदि nums[i], res[i] के समान नहीं है, तो i को r में इन्सर्ट करें
  • यदि r की लंबाई 0 है, तो 0 लौटाएं, यदि लंबाई 1 है, तो 1 लौटाएं
  • r के अंतिम एलिमेंट - पहले एलिमेंट + 1 लौटाएं

उदाहरण (पायथन)

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

class Solution(object):
    def findUnsortedSubarray(self, nums):
        res = sorted(nums)
        ans = 0
        r = []
        for i in range(len(res)):
            if nums[i] != res[i]:
                r.append(i)
        if not len(r):
            return 0
        if len(r) == 1:
            return 1
        return r[-1] - r[0] + 1

ob1 = Solution()
print(ob1.findUnsortedSubarray([2,6,4,8,10,9,15]))

इनपुट

[2,6,4,8,10,9,15]

आउटपुट

5

  1. टारगेट को धारण करने वाले सबसे छोटे चक्र की लंबाई ज्ञात करने का पायथन प्रोग्राम टारगेट को धारण करने वाले सबसे छोटे चक्र की लंबाई ज्ञात करने का पायथन प्रोग्राम

    मान लीजिए हमारे पास एक निर्देशित ग्राफ की आसन्न सूची है, जहां इंडेक्स i पर प्रत्येक सूची नोड i से जुड़े नोड्स को दर्शाती है। हमारे पास एक टारगेट मान भी है। हमें उस सबसे छोटे चक्र की लंबाई ढूंढनी है जिसमें टारगेट शामिल है। यदि कोई समाधान नहीं है तो -1 लौटाएं। उदाहरण के लिए, यदि इनपुट इस तरह है: tar

  1. - पायथन में अधिकतम उपसरणी

    मान लीजिए हमारे पास एक पूर्णांक सरणी A है। हमें सन्निकट उपसरणी ढूंढनी है जिसकी लंबाई कम से कम एक हो, और जिसका योग सबसे बड़ा हो, और उसका योग भी वापस करना है। यदि सरणी A [-2,1,-3,4,-1,2,1,-5,4] जैसी है, तो योग 6 होगा। और उपसरणी [4, -1, 2, 1] होगी। इसे हल करने के लिए हम डायनामिक प्रोग्रामिंग दृष्टिकोण

  1. - पायथन प्रोग्राम: दो अनसॉर्टेड लिस्ट का सॉर्टेड मर्ज्ड लिस्ट बनाना

    यहां दो यूजर इनपुट लिस्ट दी गई हैं, दो लिस्ट्स के एलिमेंट्स अनसॉर्टेड हैं। हमारा कार्य इन दो अनसॉर्टेड ऐरे को मर्ज करना है और उसके बाद लिस्ट को सॉर्ट करना है।उदाहरणInput: A[] = {100, 50, 150} B[] = {200, 30, 20} Output: Merge List: {20, 30, 50, 100, 150, 200}एल्गोरिदमचरण 1: पहले दो यूजर इनपुट लिस्ट