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

पायथन में आकार k के सबलिस्ट के अधिकतम मान ज्ञात करने का प्रोग्राम


मान लीजिए हमारे पास एक सूची nums और एक मान k है। हमें आकार k के प्रत्येक सबलिस्ट के अधिकतम मान ज्ञात करने हैं।

उदाहरण के लिए, nums = [12,7,3,9,10,9], k=3 के लिए आउटपुट [12,9,10,10] होगा।

एल्गोरिदम (स्लाइडिंग विंडो मैक्सिमम - O(n))

  • यदि k > len(nums), तो खाली सूची वापस करें
  • res := [], temp := nums[0], point := 0
  • पहले k तत्वों में अधिकतम ढूंढें
  • res.append(temp)
  • i = k से len(nums)-1 तक:
    • यदि nums[i] < temp और (i-point) < k: temp = nums[point]
    • अन्यथा यदि nums[i] < temp और (i-point) >= k:
      • point = i-k+1
      • विंडो [i-k+1, i] में नया अधिकतम ढूंढें
      • temp = nums[point]
    • अन्यथा: temp = nums[i], point = i
    • res.append(temp)
  • res वापस करें

उदाहरण

class Solution:
    def solve(self, nums, k):
        if k > len(nums): return []
        res = []
        temp = nums[0]
        point = 0
        for i in range(k):
            if nums[i] > temp:
                temp = nums[i]
                point = i
        res.append(temp)
        for i in range(k, len(nums)):
            if nums[i] < temp and (i - point) < k:
                temp = nums[point]
            elif nums[i] < temp and (i - point) >= k:
                point = i - k + 1
                for j in range(i - k + 1, i + 1):
                    if nums[j] > nums[point]:
                        point = j
                temp = nums[point]
            else:
                temp = nums[i]
                point = i
            res.append(temp)
        return res

ob = Solution()
nums = [12, 7, 3, 9, 10, 9]
k = 3
print(ob.solve(nums, k))

इनपुट

[12, 7, 3, 9, 10, 9], 3

आउटपुट

[12, 9, 10, 10]
  1. - Python प्रोग्राम में डिक्शनरी में शीर्ष 3 उच्चतम मान खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक डिक्शनरी दी गई है, और हमें डिक्शनरी में 3 उच्चतम मान प्रिंट करने की आवश्यकता है। नीचे चर्चा किए गए दो दृष्टिकोण हैं दृष्टिकोण 1: Collections.Counter() फ़ंक्शन का उपयोग करना उदाहरण # collections मॉड्यूल from

  1. - पायथन प्रोग्राम: डिक्शनरी में सबसे ऊंचे 3 मान ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक डिक्शनरी दिए जाने पर, हमें तीन सबसे ऊंचे मान वाले वैल्यूज़ ढूंढने और उन्हें प्रदर्शित करने की आवश्यकता है। दृष्टिकोण 1 – कलेक्शन्स मॉड्यूल का उपयोग करके (Counter फंक्शन) उदाहरण fr

  1. पायथन प्रोग्राम: ऐरे में सबसे बड़ा एलिमेंट ढूंढें पायथन प्रोग्राम: ऐरे में सबसे बड़ा एलिमेंट ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें ऐरे में सबसे बड़ा एलिमेंट ढूंढने की आवश्यकता है। दृष्टिकोण हम max को पहले एलिमेंट के रूप में इनिशियलाइज़ करते हैं। इसके बाद, हम दिए गए ऐरे