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

पायथन में नौकरियों को शेड्यूल करके अधिकतम लाभ प्राप्त करने का कार्यक्रम

मान लीजिए कि हमारे पास अंतराल की एक सूची है जहां प्रत्येक अंतराल में तीन मान होते हैं [प्रारंभ, अंत, लाभ]। हम एक समय में केवल एक ही कार्य कर सकते हैं, हमें जितना अधिक लाभ प्राप्त हो सकता है, उसे खोजना होगा।

इसलिए, यदि इनपुट अंतराल की तरह है =[[1, 2, 100], [3, 5, 40], [6, 19, 150], [2, 100, 250]], तो आउटपुट 350 होगा, जैसा कि हम इन दो अंतरालों [1, 2, 100] और [2, 100, 250]

. को ले सकते हैं

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

  • d :=एक खाली नक्शा जिसमें मान के रूप में सूचियां हैं
  • n :=0
  • अंतराल में प्रत्येक (प्रारंभ, अंत, लाभ) के लिए, करें
    • यदि अंत> n, तो
      • n :=अंत
  • d[end] में
  • जोड़ी (प्रारंभ, अंत) डालें
  • A :=आकार n + 1 की सूची और 0 से भरें
  • अंत में 0 से A के आकार के लिए, करें
    • यदि अंत d में है, तो
      • घ[अंत] में प्रत्येक (शुरुआत, लाभ) जोड़ी के लिए, करें
        • A[end] :=अधिकतम A[end], (A[start] + लाभ) और A[end - 1]
    • अन्यथा,
      • A[end] :=A[end - 1]
  • A का अंतिम मान लौटाएं

उदाहरण (पायथन)

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

from collections import defaultdict
class Solution:
   def solve(self, intervals):
      d = defaultdict(list)
      n = 0
      for start, end, profit in intervals:
         if end > n:
            n = end
         d[end].append([start, profit])
      A = [0 for i in range(n + 1)]
      for end in range(len(A)):
         if end in d:
            for start, profit in d[end]:
               A[end] = max(A[end], A[start] + profit, A[end - 1])
         else:
            A[end] = A[end - 1]
      return A[-1]
ob = Solution()
intervals = [[1, 2, 100],[3, 5, 40],[6, 19, 150],[2, 100, 250]]
print(ob.solve(intervals))

इनपुट

[[1, 2, 100],[3, 5, 40],[6, 19, 150],[2, 100, 250]]

आउटपुट

350

  1. पायथन में एक बार शेयर बाजार में खरीदारी करके हम अधिकतम लाभ प्राप्त करने का कार्यक्रम प्राप्त कर सकते हैं

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

  1. पायथन कार्यक्रम अधिकतम तीन।

    तीन नंबर ए बी और सी को देखते हुए, हमारा काम यह है कि हमें दी गई संख्या में से अधिकतम तत्व को खोजना है। उदाहरण Input: a = 2, b = 4, c = 3 Output: 4 एल्गोरिदम Step 1: input three user input number. Step2: Add three numbers to list. Step 3: Using max() function to find the greatest number max(lst).

  1. मैं पायथन प्रोग्राम के निष्पादन का समय कैसे प्राप्त करूं?

    किसी प्रोग्राम के निष्पादन के समय को मापने के लिए, या तो time.clock() या time.time() फ़ंक्शन का उपयोग करें। पायथन डॉक्स बताता है कि इस फ़ंक्शन का उपयोग बेंचमार्किंग उद्देश्यों के लिए किया जाना चाहिए। उदाहरण import time t0= time.clock() print("Hello") t1 = time.clock() - t0 print("Tim