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

पायथन में जांचें कि दिए गए गुणनफल वाला उपसरणी सरणी में मौजूद है या नहीं


मान लीजिए हमारे पास एक सरणी nums है जिसमें धनात्मक और ऋणात्मक संख्याएं हैं। हमारे पास एक मान k है। हमें जांचना है कि क्या कोई उपसरणी (subarray) है जिसका गुणनफल k के बराबर है।

उदाहरण के लिए, यदि nums = [-2, -1, 1, 3, 5, 8], k = 6 है, तो आउटपुट True होगा क्योंकि उपसरणी [-2, -1, 3] का गुणनफल 6 है।

हल करने का तरीका

  1. minimum := nums[0], maximum := nums[0]
  2. prod_max := nums[0]
  3. सरणी को पार करें:
    • यदि nums[i] < 0, तो maximum और minimum को स्वैप करें
    • maximum := max(nums[i], maximum × nums[i])
    • minimum := min(nums[i], minimum × nums[i])
    • यदि minimum या maximum k के बराबर है, तो True लौटाएं
    • prod_max := max(prod_max, maximum)
  4. False लौटाएं

यह कादाने के एल्गोरिदम का संशोधित संस्करण है जो ऋणात्मक संख्याओं को संभालता है।

उदाहरण कोड

def solve(nums, k):
    minimum = nums[0]
    maximum = nums[0]
    prod_max = nums[0]
    for i in range(1, len(nums)):
        if nums[i] < 0:
            maximum, minimum = minimum, maximum
        maximum = max(nums[i], maximum * nums[i])
        minimum = min(nums[i], minimum * nums[i])
        if minimum == k or maximum == k:
            return True
        prod_max = max(prod_max, maximum)
    return False

nums = [-2, -1, 1, 3, 5, 8]
k = 6
print(solve(nums, k))

इनपुट

[-2, -1, 1, 3, 5, 8], 6

आउटपुट

True
  1. Python में BST में दिए गए योग का ट्रिपलेट मौजूद है या नहीं जांचें Python में BST में दिए गए योग का ट्रिपलेट मौजूद है या नहीं जांचें

    मान लीजिए, हमें एक बाइनरी सर्च ट्री (BST) प्रदान किया गया है जिसमें पूर्णांक मान हैं, और एक संख्या total है। हमें यह पता लगाना है कि क्या प्रदान किए गए BST में तीन तत्वों का कोई समूह है जहां तीन तत्वों का योग आपूर्ति किए गए total मान के बराबर है।तो, यदि इनपुट इस तरह है:total = 12, तो आउटपुट True होग

  1. - पायथन प्रोग्राम: जांचें कि दिया गया ऐरे मोनोटोनिक है या नहीं

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक ऐरे इनपुट Arr दिया गया है जिसमें n इंटीजर्स हैं। हमें जांचना होगा कि इनपुट ऐरे मोनोटोनिक प्रकृति का है या नहीं। एक ऐरे को मोनोटोनिक प्रकृति का कहा जाता है यदि यह लगातार बढ़ रहा है

  1. - Python Dictionary में दी गई कुंजी पहले से मौजूद है या नहीं जांचें

    Python Dictionary में कुंजी की उपस्थिति जांचना मेंबरशिप ऑपरेटर in का उपयोग डिक्शनरी ऑब्जेक्ट के साथ भी किया जा सकता है। >>> d1 = {1: aaa, 2: bbb, 3: ccc, 4: ddd, 5: eee} >>> 3 in d1 True >>> 9 in d1 False इसके अतिरिक्त, keys() मेथड डिक्शनरी में कुंजियों का एक व्यू ऑब्जेक