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

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


मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है जो आरोही क्रम में क्रमबद्ध है, हमें सूची से k मानों को हटाना है ताकि किन्हीं दो आसन्न मानों के बीच का अधिकतम अंतर यथासंभव न्यूनतम हो, और अंत में वह अंतर ढूंढना है।

उदाहरण के लिए, यदि इनपुट nums = [15, 20, 30, 400, 1500] k = 2 है, तो आउटपुट 10 होगा, क्योंकि यदि हम [400, 1500] को हटा दें तो 20 और 30 का अंतर प्राप्त होता है।

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

  • abs_diff := nums में हर लगातार तत्वों के अंतर की सूची
  • एक फ़ंक्शन dp() परिभाषित करें। यह i, j, cnt लेगा
  • यदि cnt 0 के समान है, तो
    • m := 0
    • k को i से j तक के लिए, करें
      • m := m और abs_diff[k] में से अधिकतम
    • m लौटाएं
  • dp(i + 1, j, cnt - 1) और dp(i, j - 1, cnt - 1) में से न्यूनतम लौटाएं
  • मुख्य विधि से निम्न करें:
  • dp(0, abs_diff का आकार - 1, k) लौटाएं

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

उदाहरण

class Solution:
    def solve(self, nums, k):
        abs_diff = [nums[i] - nums[i - 1] for i in range(1, len(nums))]
        def dp(i, j, cnt):
            if cnt == 0:
                m = 0
                for k in range(i, j + 1):
                    m = max(m, abs_diff[k])
                return m
            return min(dp(i + 1, j, cnt - 1), dp(i, j - 1, cnt - 1))
        return dp(0, len(abs_diff) - 1, k)

ob = Solution()
nums = [15, 20, 30, 400, 1500]
k = 2
print(ob.solve(nums, k))

इनपुट

[15, 20, 30, 400, 1500], 2

आउटपुट

10

  1. - पायथन में नंबर डिलीट करके अधिकतम एडिटिव स्कोर खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है। एक ऑपरेशन पर विचार करें जहां हम एक नंबर चुनते हैं, उसे हटाते हैं और अपना स्कोर उस नंबर और उसके दो आसन्न नंबरों के योग से बढ़ाते हैं। हम इस ऑपरेशन को जितनी बार चाहें कर सकते हैं जब तक हम लिस्ट के पहले या आखिरी नंबर को नहीं चुनते। हमें अधिकतम संभव

  1. - Python में सबसीक्वेंस का अधिकतम योग खोजें जहां दो मानों का अंतर उनकी पोजीशन के अंतर के बराबर हो

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हम सख्ती से बढ़ते मानों का एक सबसीक्वेंस चुनते हैं, जहां प्रत्येक दो संख्याओं का अंतर उनके दो इंडेक्स के अंतर के समान है। तो हमें ऐसे सबसीक्वेंस का अधिकतम योग ढूंढना है। तो, यदि इनपुट nums = [6, 7, 9, 9, 8, 5] जैसा है, तो आउटपुट 22 होगा, क्योंक

  1. - Python प्रोग्राम: तीन संख्याओं में से अधिकतम खोजें

    इस ट्यूटोरियल में, हम एक प्रोग्राम लिखेंगे जो तीन आंकड़ों में से अधिकतम राशि ढूंढता है। हमारे पास तीन संख्याएं होंगी, और हमारा लक्ष्य उन तीन संख्याओं में से अधिकतम संख्या ढूंढना है।बेहतर समझ के लिए कुछ नमूना टेस्ट केस देखें।इनपुट: a, b, c = 2, 34, 4 आउटपुट: 34इनपुट: a, b, c = 25, 3, 12 आउटपुट: 25इनप