মান লক্ষ্য করুন আমাদের কাছে একটি সংখ্যার তালিকা nums এবং অন্য একটি মান target আছে। আমাদের কাজ হল দুই সংখ্যার পেইর যাদের যোগফল target-এর চেয়ে বড়, তাদের মধ্যে সবচেয়ে ছোট যোগফল বের করা।
উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [2, 4, 6, 10, 14] এবং target = 10, তবে আউটপুট হবে 12, কারণ আমরা ২ এবং ১০ কে বেছে নিলাম।
numsতালিকাটি সর্ট করুন।n := len(nums)answer := 10^10i := 0,j := n - 1i < jহলে লুপ চালান:- যদি
nums[i] + nums[j] > targetহয়, তবে:answer := min(answer, nums[i] + nums[j])j := j - 1
- অন্যথায়,
i := i + 1
- যদি
answerরিটার্ন করুন।
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