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

पायथन में सीढ़ी चढ़ने की न्यूनतम लागत


मान लीजिए एक सीढ़ी है, जहां i-वें चरण की कुछ गैर-ऋणात्मक लागत cost[i] निर्दिष्ट है। जब हम लागत चुकाते हैं, तो हम एक या दो चरण चढ़ सकते हैं। हमें फर्श के शीर्ष तक पहुंचने की न्यूनतम लागत ज्ञात करनी है, और हम चरण 0 या चरण 1 से शुरू कर सकते हैं।

उदाहरण के लिए, यदि इनपुट cost = [12,17,20] है, तो आउटपुट 17 होगा, सबसे सस्ता स्थान चरण 1 से शुरू करना है क्योंकि हमें उस लागत का भुगतान करना होगा और शीर्ष पर जाना होगा।

हल करने के चरण

  • dp := cost के आकार का एक सरणी, 0 से भरा हुआ
  • dp[0] := cost[0]
  • यदि cost का आकार >= 2, तो:
    • dp[1] := cost[1]
  • i को 2 से cost के आकार - 1 तक लूप करें:
    • dp[i] := cost[i] + min(dp[i-1], dp[i-2])
  • min(dp[-1], dp[-2]) वापस करें

उदाहरण

class Solution:
    def minCostClimbingStairs(self, cost):
        dp = [0] * len(cost)
        dp[0] = cost[0]
        if len(cost) >= 2:
            dp[1] = cost[1]
        for i in range(2, len(cost)):
            dp[i] = cost[i] + min(dp[i-1], dp[i-2])
        return min(dp[-1], dp[-2])

ob = Solution()
print(ob.minCostClimbingStairs([12,17,20]))

इनपुट

[12,17,20]

आउटपुट

17
  1. पायथन में लीफ वैल्यूज से न्यूनतम लागत ट्री पायथन में लीफ वैल्यूज से न्यूनतम लागत ट्री

    मान लीजिए हमारे पास पॉजिटिव इंटीजर्स का एक ऐरे arr है, उन सभी बाइनरी ट्री पर विचार करें जैसे कि -प्रत्येक नोड के या तो 0 या 2 चिल्ड्रन हैं;arr ऐरे के मान इनऑर्डर ट्रैवर्सल में प्रत्येक लीफ के मानों से मेल खाते हैं।प्रत्येक नॉन-लीफ नोड का मान उसके बाएं और दाएं सबट्री में सबसे बड़े लीफ मान के गुणनफल क

  1. पायथन प्रोग्राम: न्यूनतम लागत पथ पायथन प्रोग्राम: न्यूनतम लागत पथ

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लागत मैट्रिक्स और एक स्थिति (m, n) दी गई है, हमें (0, 0) से (m, n) तक पहुंचने के लिए न्यूनतम लागत पथ की लागत ज्ञात करनी है। प्रत्येक सेल एक सेल से दूसरे सेल तक पार करने की लागत को दर्शाता है। उदाहरण # डायनामिक दृष्टिकोण R =

  1. पायथन प्रोग्राम: X से विभाज्य सबसे छोटी K-अंकीय संख्या पायथन प्रोग्राम: X से विभाज्य सबसे छोटी K-अंकीय संख्या

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इंटीजर्स n और d दिए गए हैं। हमें d से विभाज्य सबसे छोटी n-अंकीय संख्या ढूंढने की आवश्यकता है। दृष्टिकोण 1. पहले हम MIN की गणना करते हैं: सबसे छोटी n-अंकीय संख्या (1000...n-टाइम्स) 2.