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

पायथन में सभी अच्छे कलाकारों को भुगतान करने के लिए आवश्यक न्यूनतम राशि खोजने का कार्यक्रम

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

इसलिए, यदि इनपुट रेटिंग =[1, 2, 5, 1] ​​की तरह है, तो आउटपुट 7000 होगा, क्योंकि हम प्रत्येक संबंधित कोडर के लिए न्यूनतम भुगतान कर सकते हैं [1000, 2000, 3000, 1000]

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

  • वेतन:=रेटिंग के समान आकार की एक सूची, प्रारंभ में सभी मान 1

    . हैं
  • मैं के लिए 1 से लेकर रेटिंग के आकार तक - 1, करें

    • अगर रेटिंग [i]> रेटिंग [i-1], तो

      • भुगतान[i] :=भुगतान[i-1]+1

  • मैं के लिए रेटिंग -2 से 0 की श्रेणी के आकार में, 1 से कम करें

    • अगर रेटिंग[i]> रेटिंग[i+1], तो

      • भुगतान[i] :=अधिकतम वेतन[i] और भुगतान[i+1]+1

  • वापसी (वेतन के तत्वों का योग) *1000

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

उदाहरण

class Solution:
   def solve(self, ratings):
      pay=[1 for _ in ratings]
      for i in range(1, len(ratings)):
         if ratings[i] > ratings[i-1]:
            pay[i] = pay[i-1]+1
      for i in range(len(ratings)-2,-1,-1):
         if ratings[i] > ratings[i+1]:
         pay[i] = max(pay[i], pay[i+1]+1)
      return sum(pay)*1000
ob = Solution()
ratings = [1, 2, 5, 1]
print(ob.solve(ratings))

इनपुट

[1, 2, 5, 1]

आउटपुट

7000

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

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

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

    मान लीजिए कि हमारे पास एक निर्देशित चक्रीय ग्राफ है, जिसमें n कोने हैं और नोड्स 0 से n-1 तक गिने जाते हैं, ग्राफ को किनारे की सूची द्वारा दर्शाया जाता है, जहां किनारों [i] =(यू, वी) नोड यू से एक निर्देशित किनारे का प्रतिनिधित्व करता है। नोड वी। हमें शिखर का सबसे छोटा सेट ढूंढना है जिससे ग्राफ में सभ

  1. पायथन में एक फ़ोल्डर से घर पर लौटने के लिए आवश्यक न्यूनतम छलांग खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक लॉग है जहां हमारे पास फ़ोल्डरों में प्रवेश करने का पथ है, तो अलग-अलग प्रतीक हो सकते हैं जैसे - ../ :वर्तमान फ़ोल्डर से मूल फ़ोल्डर में ले जाएँ। (यदि हम मुख्य फ़ोल्डर में हैं, तो स्थान न बदलें)। ./ :वर्तमान फ़ोल्डर में बने रहें। x/ :x नाम के चाइल्ड फोल्डर में ले जाए