কম্পিউটার

একটি অ্যারে থেকে ট্রিপলেটের সংখ্যা পরীক্ষা করার প্রোগ্রাম যার যোগফল টার্গেটের চেয়ে কম বা পাইথন নয়


ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা এবং আরেকটি মান লক্ষ্য আছে, আমাদেরকে ট্রিপলের সংখ্যা (i

সুতরাং, যদি ইনপুট হয় সংখ্যা =[−2, 6, 4, 3, 8], লক্ষ্য =12, তাহলে আউটপুট হবে 5, যেমন ট্রিপলেটগুলি হল:[−2,6,4], [−2 ,6,3], [−2,4,3], [−2,4,8], [−2,3,8]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • তালিকার সংখ্যাগুলি সাজান

  • উত্তর :=0

  • n :=সংখ্যার আকার

  • আমি 0 থেকে n−1 রেঞ্জের জন্য, কর

    • k :=n − 1

    • i + 1 থেকে n−1 রেঞ্জের মধ্যে j এর জন্য, করুন

      • যখন k> j এবং nums[i] + nums[k] + nums[j]>=টার্গেট, do

        • k :=k − 1

      • যদি j k এর মত হয়, তাহলে

    • ans :=ans + k − j

  • উত্তর ফেরত দিন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

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

  2. একটি সংখ্যা পরীক্ষা করার প্রোগ্রামটি স্বতন্ত্র ফ্যাক্টরিয়াল সংখ্যার যোগফল হিসাবে লেখা যেতে পারে বা পাইথনে নয়

  3. প্রদত্ত নম্বরটি পাইথনে নার্সিসিস্টিক নম্বর কিনা তা পরীক্ষা করার জন্য প্রোগ্রাম

  4. একটি সংখ্যা প্রাইম কি না তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম