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

पायथन में K प्रीफिक्स


मान लीजिए हमारे पास संख्याओं की एक सूची nums और एक पूर्णांक k है, हमें अधिकतम संभव i ढूंढना है जहां nums[0] + nums[1] + ... + nums[i] <= k। यदि कोई वैध i मौजूद नहीं है तो -1 लौटाएंगे।

उदाहरण के लिए, यदि इनपुट है nums = [4, -7, 5, 2, 6], k = 5, तो आउटपुट होगा 3, इंडेक्स 3 है क्योंकि यदि हम 4+(-7)+5+2 = 4 जोड़ते हैं, यह k से कम है, यदि हम अंतिम तत्व जोड़ते हैं तो यह अब k से कम नहीं रहेगा, इसलिए इंडेक्स 3 है।

हल करने के चरण

  • i को 1 से nums के आकार - 1 तक:
    • nums[i] := nums[i] + nums[i-1] (प्रीफिक्स योग)।
  • i को nums के आकार -1 से -1 तक, 1 से घटाते हुए:
    • यदि nums[i] <= k, तो i लौटाएं।
  • -1 लौटाएं।

उदाहरण

class Solution:
    def solve(self, nums, k):
        for i in range(1, len(nums)):
            nums[i] += nums[i-1]
        for i in range(len(nums)-1, -1, -1):
            if nums[i] <= k:
                return i
        return -1

ob = Solution()
nums = [4, -7, 5, 2, 6]
k = 5
print(ob.solve(nums, k))

इनपुट

[4, -7, 5, 2, 6], 5

आउटपुट

3
  1. - पायथन में सबसे लंबा सामान्य उपसर्ग

    मान लीजिए हमारे पास एक सरणी में स्ट्रिंग्स का एक समूह है। हमें सरणी में स्ट्रिंग्स के बीच सबसे लंबा सामान्य उपसर्ग ढूंढना है। यहां हम मान लेंगे कि सभी स्ट्रिंग्स लोअरकेस स्ट्रिंग्स हैं। और यदि कोई सामान्य उपसर्ग नहीं है, तो वापस करें। इसलिए यदि स्ट्रिंग्स की सरणी [school, schedule,scotland] जैसी ह

  1. - पायथन में bisect: ऐरे बाइसेक्शन एल्गोरिदम

    bisect मॉड्यूल सॉर्टेड लिस्ट में इंसर्शन पॉइंट ढूंढने और सॉर्टेड ऑर्डर बनाए रखते हुए इंसर्ट करने के लिए बाइनरी सर्च (बाइसेक्शन) एल्गोरिदम प्रदान करता है। O(log n) सर्च, O(n) इंसर्शन (लिस्ट शिफ्ट के कारण)। मुख्य फ़ंक्शन्स bisect_left(a, x, lo=0, hi=len(a)) इंसर्शन पॉइंट लौटाता है पहले किसी मौजूदा ए

  1. - पायथन में संख्याओं को स्ट्रिंग में फॉर्मेट कैसे करें

    समस्या विवरण आप पायथन में स्ट्रिंग पर format फंक्शन का उपयोग करके फ्लोटिंग नंबर को निश्चित चौड़ाई में फॉर्मेट कर सकते हैं। उदाहरण nums = [0.555555555555, 1, 12.0542184, 5589.6654753] for x in nums: print({:10.4f}.format(x)) आउटपुट 0.5556 1.0000 12.0542 5589.6655 उदाहरण उसी फंक्शन का उपयोग क