ধরুন আমাদের কাছে সংখ্যা নামক সংখ্যার একটি তালিকা এবং আরেকটি মান লক্ষ্য আছে, আমাদেরকে ট্রিপলের সংখ্যা (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