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