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

Python में सरणी से उन ट्रिपलेट्स की संख्या जांचें जिनका योग लक्ष्य से कम है


मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची और एक मान target है, हमें उन ट्रिपल (i < j < k) की संख्या ढूंढनी है जो मौजूद हैं जैसे कि nums[i] + nums[j] + nums[k] < target।

तो, यदि इनपुट nums = [-2, 6, 4, 3, 8], target = 12 जैसा है, तो आउटपुट 5 होगा, क्योंकि ट्रिपलेट्स हैं: [-2,6,4], [-2,6,3], [-2,4,3], [-2,4,8], [-2,3,8]

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

  • सूची nums को सॉर्ट करें
  • ans := 0
  • n := nums का आकार
  • i को 0 से n-1 तक की रेंज में लिए, करें
    • k := n - 1
    • j को i + 1 से n-1 तक की रेंज में लिए, करें
      • जब k > j और nums[i] + nums[k] + nums[j] >= target, करें k := k - 1
      • यदि j, k के समान है, तो ब्रेक करें
      • ans := ans + k - j
  • ans लौटाएं

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

उदाहरण


class Solution:
    def solve(self, nums, target):
        nums.sort()
        ans = 0
        n = len(nums)
        for i in range(n):
            k = n - 1
            for j in range(i + 1, n):
                while k > j and nums[i] + nums[k] + nums[j] >= target:
                    k -= 1
                if j == k:
                    break
                ans += k - j
        return ans

ob1 = Solution()
nums = [-2, 6, 4, 3, 8]
target = 12
print(ob1.solve(nums, target))

इनपुट

[-2, 6, 4, 3, 8], 12

आउटपुट

5
  1. बाइनरी ट्री में पथ जिनका योग k हो, उनकी संख्या गिनने का पायथन प्रोग्राम बाइनरी ट्री में पथ जिनका योग k हो, उनकी संख्या गिनने का पायथन प्रोग्राम

    मान लीजिए हमारे पास एक बाइनरी ट्री और एक मान k है, हमें उन अद्वितीय नोड-टू-सबचाइल्ड पथों की संख्या ढूंढनी है जिनका योग k के बराबर है। उदाहरण के लिए, यदि इनपुट इस तरह है: और k = 5, तो आउटपुट 2 होगा, क्योंकि पथ हैं [2, 3] और [1, 4]। इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे: count := एक मैप

  1. - पायथन में जांचें कि कोई संख्या बदसूरत संख्या है या नहीं

    मान लीजिए हमारे पास एक संख्या n है, हमें जांचना है कि क्या इसके अभाज्य गुणनखंड केवल 2, 3 या 5 शामिल हैं या नहीं। उदाहरण के लिए, यदि इनपुट है n = 18, तो आउटपुट होगा True, क्योंकि 18 के अभाज्य गुणनखंड 2 और 3 हैं। हल करने के चरण यदि n < 0, तो False लौटाएं। factor := [2, 3, 5] तत्वों वाली सूची। प्रत्य

  1. - Python प्रोग्राम: जांचें कि कोई संख्या अभाज्य है या नहीं

    इसमें, हम एक प्रोग्राम लिखेंगे जो जांच करेगा कि दी गई संख्या जो 1 से अधिक है, अभाज्य है या नहीं। एक अभाज्य संख्या 1 से बड़ा एक धनात्मक पूर्णांक है जिसके केवल दो गुणनखंड होते हैं 1 और वह संख्या स्वयं, उदाहरण के लिए संख्या: 2, 3, 5, 7... आदि अभाज्य संख्याएं हैं क्योंकि उनके केवल दो गुणनखंड होते हैं