কম্পিউটার

তালিকা থেকে তিনটি অনন্য উপাদান খুঁজে বের করার প্রোগ্রাম যার যোগফল k পাইথনের সবচেয়ে কাছাকাছি


ধরুন আমাদের কাছে 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

  1. পাইথন প্রোগ্রামে তালিকায় উপাদানের যোগফল খুঁজুন

  2. পাইথন প্রোগ্রাম একটি তালিকার ক্রমবর্ধমান যোগফল খুঁজে বের করতে

  3. পাইথন প্রোগ্রাম তালিকায় উপাদানের যোগফল খুঁজে বের করতে

  4. একটি তালিকা থেকে N বৃহত্তম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম