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

पायथन में सभी दिनों की यात्रा के लिए न्यूनतम बस किराया खोजने का कार्यक्रम?

मान लीजिए कि हमारे पास क्रमबद्ध संख्याओं की एक सूची है, जिन्हें दिन कहा जाता है, जहां हमें प्रत्येक दिन के लिए बस लेनी चाहिए। हमें सभी दिनों के लिए यात्रा करने में लगने वाली न्यूनतम लागत का पता लगाना होगा। 3 प्रकार के बस टिकट हैं। 2 रुपये में 1 दिन का पास 7 रुपये में 7 दिन का पास 25 रुपये में 30 दिन का पास

इसलिए, यदि इनपुट दिनों की तरह है =[1, 3, 5, 6, 28], तो आउटपुट 9 होगा, क्योंकि शुरुआत में 7-दिन का पास खरीदकर सबसे कम लागत प्राप्त की जा सकती है और फिर 1- 29वें दिन दिन बीतता है।

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

  • n :=अधिकतम दिन

  • दिन :=दिनों से एक नया सेट

  • डीपी:=[0] *(एन + 1)

  • 1 से n + 1 की श्रेणी में i के लिए, करें

    • अगर मैं दिनों में गैर-शून्य है, तो

      • अगर मैं>=30, तो

        • डीपी [i]:=न्यूनतम डीपी [i - 1] + 2, डीपी [i - 7] + 7, डीपी [i - 30] + 25

      • अन्यथा जब मैं>=7, तब

        • डीपी [i]:=न्यूनतम डीपी [i - 1] + 2, डीपी [i - 7] + 7, 25

      • अन्यथा,

        • dp[i] :=न्यूनतम dp[i - 1] + 2, 7

    • अन्यथा,

      • डीपी [i]:=डीपी [i - 1]

  • वापसी डीपी [एन]

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

उदाहरण

class Solution:
   def solve(self, days):

      n = max(days)
      days = set(days)

      dp = [0] * (n + 1)

      for i in range(1, n + 1):
         if i in days:
            if i >= 30:
               dp[i] = min(dp[i - 1] + 2, dp[i - 7] + 7, dp[i - 30] + 25)
            elif i >= 7:
               dp[i] = min(dp[i - 1] + 2, dp[i - 7] + 7, 25)
            else:
               dp[i] = min(dp[i - 1] + 2, 7)
         else:
            dp[i] = dp[i - 1]

      return dp[n]

ob = Solution()
days = [1, 3, 5, 6, 28]
print(ob.solve(days))

इनपुट

[1, 3, 5, 6, 28]

आउटपुट

9

  1. अजगर में सभी पेड़ों को जलाने में लगने वाले दिनों की संख्या का पता लगाने का कार्यक्रम

    मान लीजिए हमारे पास एक 2डी मैट्रिक्स है जो एक जंगल का प्रतिनिधित्व करता है जहां तीन प्रकार की कोशिकाएं हैं:0 खाली सेल 1 ट्री सेल 2 फायर सेल पर पेड़ हर दिन, एक पेड़ आग पकड़ता है जब एक आसन्न होता है (ऊपर, नीचे, बाएं, दाएं, नहीं विकर्ण) पेड़ में आग लगी है। हमें यह पता लगाना होगा कि प्रत्येक पेड़ में आग

  1. पायथन में सभी शिपमेंट को पूरा करने के लिए कुल लागत खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास पोर्ट नामक सूचियों की एक सूची है, जहां पोर्ट [i] उन पोर्ट की सूची का प्रतिनिधित्व करता है जिनसे पोर्ट i जुड़ा हुआ है। हमारे पास शिपमेंट्स नामक सूचियों की एक और सूची भी है जहां अनुक्रम की प्रत्येक सूची [i, j] जो दर्शाती है कि पोर्ट i से पोर्ट j तक शिपमेंट अनुरोध है। और पोर्ट I

  1. संख्या के कारकों का न्यूनतम योग खोजने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन किसी संख्या इनपुट को देखते हुए, दी गई संख्या के गुणनखंडों का न्यूनतम योग ज्ञात करें। यहां हम सभी कारकों और उनके संगत योग की गणना करेंगे और फिर उनमें से न्यूनतम का पता लगाएंगे। इसलिए संख्या के गुणनफल का न्यूनतम योग ज्