ধরুন আমাদের কাছে nums নামে একটি সংখ্যার তালিকা আছে এবং আরেকটি মান k, আমাদেরকে সংখ্যায় (a, b, c) তিনটি অনন্য এন্ট্রি খুঁজে বের করতে হবে যেমন |a + b + c − k| ন্যূনতম করা হয় এবং পরম পার্থক্য ফেরত দেয়।
সুতরাং, ইনপুট যদি nums =[2, 5, 25, 6] k =14 এর মত হয়, তাহলে আউটপুট হবে 1 যেমন আমরা নিলে [2, 5, 6] আমাদেরকে 14-এর সবচেয়ে কাছাকাছি নিয়ে আসবে এবং পরম পার্থক্য হল |13 − 14| =1.
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
তালিকার সংখ্যাগুলি সাজান
-
উত্তর :=1^9
-
আমি 0 থেকে সংখ্যার আকারের মধ্যে, কর
-
j :=i + 1
-
k :=সংখ্যার আকার − 1
-
যখন j
-
s :=nums[i] + nums[j] + nums[k]
-
যদি s <=টার্গেট, তারপর
-
উত্তর :=সর্বনিম্ন উত্তর এবং লক্ষ্য − s
-
j :=j + 1
-
-
অন্যথায়,
-
ans :=সর্বনিম্ন উত্তর এবং s − লক্ষ্য
-
k :=k − 1
-
-
-
-
উত্তর ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, nums, target): nums.sort() ans = 1e9 for i in range(len(nums)): j = i + 1 k = len(nums) − 1 while j < k: s = nums[i] + nums[j] + nums[k] if s <= target: ans = min(ans, target - s) j += 1 else: ans = min(ans, s - target) k −= 1 return ans ob1 = Solution() nums = [2, 5, 25, 6] k = 14 print(ob1.solve(nums, k))
ইনপুট
[2, 5, 25, 6], 14
আউটপুট
1