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

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


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

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

इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे (दो पास ग्रीडी):

  • pay := ratings के आकार की सूची, प्रारंभ में सभी 1।

  • i को 1 से len(ratings)-1 तक (बाएं से दाएं):

    • यदि ratings[i] > ratings[i-1], तो pay[i] = pay[i-1] + 1।

  • i को len(ratings)-2 से 0 तक (दाएं से बाएं):

    • यदि ratings[i] > ratings[i+1], तो pay[i] = max(pay[i], pay[i+1] + 1)।

  • sum(pay) * 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. Python में सभी बिंदुओं को जोड़ने की न्यूनतम लागत खोजने का प्रोग्राम Python में सभी बिंदुओं को जोड़ने की न्यूनतम लागत खोजने का प्रोग्राम

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

  1. Python से DAG में सभी नोड्स तक पहुंचने के लिए मिनिमम वर्टेक्स कैसे ढूंढें? Python से DAG में सभी नोड्स तक पहुंचने के लिए मिनिमम वर्टेक्स कैसे ढूंढें?

    डायरेक्टेड एसाइक्लिक ग्राफ (DAG) में जिन वर्टेक्सेज़ का इन-डिग्री 0 है, उनसे सभी नोड्स पहुंचे जा सकते हैं। एल्गोरिदम सभी नोड्स का सेट बनाएं (0 से n-1)। सभी एजेज़ के डेस्टिनेशन नोड्स (v) का सेट बनाएं। सोर्स नोड्स = सभी नोड्स - डेस्टिनेशन नोड्स (यानी इन-डिग्री 0 वाले)। यही मिनिमम वर्टेक्स सेट है। उद

  1. Python में फोल्डर से होम वापस आने के लिए न्यूनतम जंप खोजें Python में फोल्डर से होम वापस आने के लिए न्यूनतम जंप खोजें

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