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

पायथन में गायब होने वाले सिक्कों के मैट्रिक्स से हम अधिकतम सिक्कों को खोजने का कार्यक्रम प्राप्त कर सकते हैं

मान लीजिए कि हमारे पास एक 2डी मैट्रिक्स है जहां प्रत्येक सेल मैट्रिक्स [आर, सी] उस सेल में मौजूद सिक्कों की संख्या का प्रतिनिधित्व करता है। जब हम मैट्रिक्स [आर, सी] से सिक्के उठाते हैं, तो पंक्ति (आर -1) और (आर + 1) के सभी सिक्के गायब हो जाएंगे, साथ ही दो कोशिकाओं मैट्रिक्स [आर, सी + 1] और के सिक्के भी गायब हो जाएंगे। मैट्रिक्स [आर, सी - 1]। हमें अधिकतम संख्या में सिक्के एकत्र करने होंगे।

तो, अगर इनपुट पसंद है

2 8 7 6
10 10 4 2
5 9 2 3

तो आउटपुट 26 होगा क्योंकि हम 8, 6, और 9 और 3 सिक्कों के साथ सेल चुन सकते हैं, इसलिए कुल 26 है।

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

  • एक फ़ंक्शन को परिभाषित करें getmax() । इसमें गिरफ्तारी होगी
  • पिछला_मैक्स:=0
  • curr_max :=0
  • res :=0
  • गिरफ्तारी में प्रत्येक अंक के लिए, करें
    • अस्थायी:=curr_max
    • curr_max :=num + prev_max
    • prev_max :=अधिकतम तापमान और prev_max
    • res :=अधिकतम res और curr_max
  • रिटर्न रेस
  • मुख्य विधि से निम्न कार्य करें -
  • यदि मैट्रिक्स खाली है, तो
    • वापसी 0
  • m :=मैट्रिक्स की पंक्ति गणना
  • n :=मैट्रिक्स की कॉलम संख्या
  • row_sum :=आकार m की एक सरणी और 0 से भरें
  • 0 से m-1 की सीमा में i के लिए
    • row_sum[i] :=getmax(matrix[i])
  • रिटर्न गेटमैक्स(row_sum)

उदाहरण

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

def getmax(arr):
   prev_max, curr_max = 0, 0
   res = 0
   for num in arr:
      temp = curr_max
      curr_max = num + prev_max
      prev_max = max(temp, prev_max)
      res = max(res, curr_max)
   return res

def solve(matrix):
   if not matrix:
      return 0
   m, n = len(matrix), len(matrix[0])
   row_sum = [0 for _ in range(m)]
   for i in range(m):
      row_sum[i] = getmax(matrix[i])
   return getmax(row_sum)

matrix = [
   [2, 8, 7, 6],
   [10, 10, 4, 2],
   [5, 9, 2, 3]
]
print(solve(matrix))

इनपुट

[
[2, 8, 7, 6],
[10, 10, 4, 2],
[5, 9, 2, 3]
]

आउटपुट

26

  1. पायथन में हम जितने सिक्के एकत्र कर सकते हैं, उन्हें खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक 2D मैट्रिक्स है जहां प्रत्येक सेल कुछ सिक्के संग्रहीत करता है। अगर हम [0,0] से शुरू करते हैं, और केवल दाएं या नीचे जा सकते हैं, तो हमें नीचे दाएं कोने से अधिकतम सिक्कों की संख्या का पता लगाना होगा। तो, अगर इनपुट पसंद है 1 4 2 2 0 0 0 5 तब आउटपुट 14 होग

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

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

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

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