ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যার নাম nums এবং আরেকটি মান লক্ষ্য। আমাদের লক্ষ্যের চেয়ে বড় সংখ্যার জোড়ার সর্বনিম্ন যোগফল খুঁজে বের করতে হবে।
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[2, 4, 6, 10, 14] লক্ষ্য =10, তাহলে আউটপুট হবে 12, যেমন আমরা 2 এবং 10 বেছে নিই
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- তালিকা সংখ্যা সাজান
- n :=সংখ্যার আকার
- উত্তর :=10^10
- i :=0, j :=n - 1
- যখন i
- যদি nums[i] + nums[j]> টার্গেট হয়, তাহলে
- উত্তর :=সর্বনিম্ন উত্তর এবং (সংখ্যা[i] + সংখ্যা[j])
- j :=j - 1
- অন্যথায়,
- i :=i + 1
- যদি nums[i] + nums[j]> টার্গেট হয়, তাহলে
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums, target): nums.sort() n = len(nums) answer = 10 ** 10 i, j = 0, n - 1 while i < j: if nums[i] + nums[j] > target: answer = min(answer, nums[i] + nums[j]) j -= 1 else: i += 1 return answer ob = Solution() nums = [2, 4, 6, 10, 14] target = 10 print(ob.solve(nums, target))
ইনপুট
[2, 4, 6, 10, 14], 10
আউটপুট
12