কম্পিউটার টিউটোরিয়াল

পাইথনে টার্গেটের চেয়ে বড় সবচেয়ে ছোট পেইর সম বের করার প্রোগ্রাম


মান লক্ষ্য করুন আমাদের কাছে একটি সংখ্যার তালিকা nums এবং অন্য একটি মান target আছে। আমাদের কাজ হল দুই সংখ্যার পেইর যাদের যোগফল target-এর চেয়ে বড়, তাদের মধ্যে সবচেয়ে ছোট যোগফল বের করা।

উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [2, 4, 6, 10, 14] এবং target = 10, তবে আউটপুট হবে 12, কারণ আমরা ২ এবং ১০ কে বেছে নিলাম।

সমাধানের ধাপসমূহ:
  • nums তালিকাটি সর্ট করুন।
  • n := len(nums)
  • answer := 10^10
  • i := 0, j := n - 1
  • i < 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
  1. পাইথনে বড় কনক্যাটেনেটেড লিস্ট থেকে সর্বোচ্চ সাবলিস্ট যোগফল বের করার প্রোগ্রাম

  2. পাইথনে সাবলিস্টের যোগফল পুরো লিস্টের যোগফলের চেয়ে বড় কিনা যাচাই করা

  3. পাইথনে দিয়ে যোগফলের জন্য সর্বোচ্চ গুণফল নির্ণয়

  4. পাইথনে টার্গেট থেকে বড় সবচেয়ে ছোট অক্ষর (Find Smallest Letter Greater Than Target)