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

पायथन में सीढ़ियों के शीर्ष पर चढ़ने की न्यूनतम लागत ढूंढने का प्रोग्राम


मान लीजिए हमारे पास stairs नामक संख्याओं की एक सूची है और एक अन्य मान k है। हम वर्तमान में सीढ़ी 0 पर हैं और stairs के अंतिम इंडेक्स पर चढ़ना चाहते हैं। मान stair[i] इंडेक्स पर पहुंचने की लागत इंगित करता है और प्रत्येक राउंड में हम 1, 2, ... k, सीढ़ियों को एक बार में कूद सकते हैं। हमें अंतिम सीढ़ी पर चढ़ने की न्यूनतम लागत ढूंढनी है।

उदाहरण के लिए, यदि इनपुट stairs = [4, 11, 11, 3, 2] k = 3 है, तो आउटपुट 9 होगा, क्योंकि हम सीढ़ियों [4, 3, 2] का उपयोग करते हैं।

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

  • q := एक डबल एंडेड क्यू और इसमें एक जोड़ी (stairs[0], 0) डालें
  • i को 1 से stairs के आकार तक रेंज में, करें
    • जब तक i - q[0, 1] > k, करें
      • q के बाएं से आइटम हटाएं
    • curcost := q[0, 0] + stairs[i]
    • जब तक q खाली नहीं है और curcost <= q के अंतिम आइटम का पहला मान, करें
      • q से अंतिम तत्व हटाएं
    • (curcost, i) को q के अंत में डालें
  • q के अंतिम आइटम का पहला मान लौटाएं

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

उदाहरण

from collections import deque class Solution:    def solve(self, stairs, k):       q = deque([(stairs[0], 0)])       for i in range(1, len(stairs)):          while i - q[0][1] > k:             q.popleft()          curcost = q[0][0] + stairs[i]          while q and curcost <= q[-1][0]:             q.pop()          q.append((curcost, i))       return q[-1][0] ob = Solution() stairs = [4, 11, 11, 3, 2] k = 3 print(ob.solve(stairs, k))

इनपुट

[4, 11, 11, 3, 2], 3

आउटपुट

9

  1. Python में सभी बिंदुओं को जोड़ने की न्यूनतम लागत खोजने का प्रोग्राम Python में सभी बिंदुओं को जोड़ने की न्यूनतम लागत खोजने का प्रोग्राम

    मान लीजिए हमारे पास points नामक एक ऐरे है जिसमें कुछ पॉइंट्स (x, y) के रूप में हैं। अब दो पॉइंट्स (xi, yi) और (xj, yj) को जोड़ने की लागत उनके बीच की मैनहट्टन दूरी है, सूत्र है |xi - xj| + |yi - yj|। हमें सभी पॉइंट्स को जोड़ने की न्यूनतम लागत ढूंढनी है। उदाहरण के लिए, यदि इनपुट है points = [(0,0),(

  1. Python प्रोग्राम में ऐरे का योग खोजना Python प्रोग्राम में ऐरे का योग खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक ऐरे दिया गया है, हमें ऐरे का योग निकालने की आवश्यकता है। पूरे ऐरे को पार करने और प्रत्येक इंडेक्स पर तत्व को जोड़कर योग प्राप्त करने का ब्रूट-फोर्स दृष्टिकोण नीचे चर्चा किया गया है। उदाहरण # sum फ़ंक्शन def

  1. पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें पायथन प्रोग्राम: मैट्रिक्स का ट्रांसपोज़ ढूंढें

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