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

Python में डाइट प्लान प्रदर्शन

मान लीजिए एक डाइटर calories[i] का उपभोग करता है, यह i-वें दिन की कैलोरी को दर्शाता है। यदि हमारे पास एक पूर्णांक k है, तो k दिनों के प्रत्येक लगातार अनुक्रम के लिए जो (calories[i], calories[i+1], ..., calories[i+k-1] सभी 0 <= i <= n-k के लिए) है, वे T ढूंढते हैं। T उस k दिनों के अनुक्रम के दौरान उपभोग की गई कुल कैलोरी है (calories[i] + calories[i+1] + ... + calories[i+k-1]): लेकिन कुछ शर्तें हैं;

  • यदि T < निचली सीमा, तो उन्होंने अपने आहार पर खराब प्रदर्शन किया इसलिए 1 अंक खो दें;
  • यदि T > ऊपरी सीमा, तो उन्होंने अपने आहार पर अच्छा प्रदर्शन किया इसलिए 1 अंक प्राप्त करें;
  • अन्यथा, उन्होंने सामान्य प्रदर्शन किया। इसलिए अंक समान रहते हैं।

प्रारंभ में, डाइटर के पास शून्य अंक हैं। हमें डाइटर द्वारा प्राप्त कुल अंकों की संख्या ढूंढनी है।

यदि सरणी [6,5,0,0] है और k = 2 और lower := 1 और upper := 5, तो आउटपुट 0 होगा। C[0] + C[1] > upper, इसलिए एक अंक बढ़ाएं, lower <= C[1] + C[2] <= upper इसलिए कोई परिवर्तन नहीं, उसके बाद C[2] + C[3] < lower, इसलिए एक अंक घटाएं, इसलिए आउटपुट 0 होगा।

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

  • temp := 0
  • i के लिए 0 से k तक
    • temp := temp + C[k]
  • right := k - 1, और left := 0, और points := 0
  • जब right < C की लंबाई, करें
    • यदि temp < lower, तो points को 1 से घटाएं, यदि temp > upper, तो points को 1 से बढ़ाएं
    • temp := temp - C[left]
    • left और right को 1 से बढ़ाएं
    • यदि right >= C की लंबाई, तो लूप से बाहर आएं
    • temp := temp + C[right]
  • points लौटाएं

उदाहरण

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

class Solution(object):
    def dietPlanPerformance(self, c, k, l, u):
        temp = 0
        for i in range(k):
            temp += c[i]
        right = k - 1
        left = 0
        points = 0
        while right < len(c):
            if temp < l:
                points -= 1
            elif temp > u:
                points += 1
            temp -= c[left]
            left += 1
            right += 1
            if right >= len(c):
                break
            temp += c[right]
        return points
ob1 = Solution()
print(ob1.dietPlanPerformance([6, 5, 0, 0], 2, 1, 5))

इनपुट

[6,5,0,0] 2 1 5

आउटपुट

0
  1. पायथन में पास्कल के त्रिभुज की nवीं पंक्ति खोजने का प्रोग्राम पायथन में पास्कल के त्रिभुज की nवीं पंक्ति खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक संख्या n है, हमें पास्कल के त्रिभुज की nवीं (0-इंडेक्स्ड) पंक्ति ढूंढनी है। जैसा कि हम जानते हैं पास्कल का त्रिभुज निम्नानुसार बनाया जा सकता है: सबसे ऊपर की पंक्ति में 1 की सरणी होती है। बाद की पंक्ति ऊपर-बाएं और ऊपर-दाएं की संख्याओं को जोड़कर बनाई जाती है। कुछ पंक्तियां इस

  1. पायथन में बाइनरी ट्री की अधिकतम गहराई पायथन में बाइनरी ट्री की अधिकतम गहराई

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें उस ट्री की अधिकतम गहराई ढूंढनी है। ट्री की अधिकतम गहराई वह अधिकतम नोड्स की संख्या है जो सबसे लंबे पथ का उपयोग करके रूट से लीफ तक पहुंचने के लिए पार की जाती है। मान लीजिए ट्री नीचे जैसा है। यहां गहराई 3 होगी। हल करने के चरण यहां हम पुनरावर्ती दृष्टिकोण क

  1. - पायथन रेगुलर एक्सप्रेशन के परफॉरमेंस को कैसे ऑप्टिमाइज़ करें?

    रेगुलर एक्सप्रेशन वर्ड प्रोसेसिंग में पैटर्न फ़िल्टर करने का हमारा काम आसान बनाते हैं। रेगुलर एक्सप्रेशन के बारे में एक अच्छी बात यह है कि उन्हें तेज़ परिणामों के लिए संकलित और पुन: उपयोग किया जा सकता है। चूंकि रेगुलर एक्सप्रेशन फंक्शन कॉल्स में नहीं बदलते, हम इसे एक बार संकलित कर सकते हैं और संकल