কম্পিউটার

পাইথন ব্যবহার করে প্রদত্ত যোগফলের শর্ত পূরণ করে এমন পরবর্তী সংখ্যা খুঁজে বের করার জন্য প্রোগ্রাম


ধরুন আমাদের nums নামে একটি অ্যারে আছে এবং আরেকটি মান k। আমাদের সংখ্যার অ-খালি পরের সংখ্যাগুলি খুঁজে বের করতে হবে যাতে এটির সর্বনিম্ন এবং সর্বাধিক উপাদানের যোগফল k এর থেকে ছোট বা সমান হয়। উত্তরগুলি খুব বড় হতে পারে তাই উত্তর মোড 10^9 + 7 ফেরত দিন।

সুতরাং, যদি ইনপুটটি nums =[4,6,7,8] k =11 এর মত হয়, তাহলে আউটপুট হবে 4 কারণ এর মত পরবর্তি আছে

  • [৪], এখানে সর্বনিম্ন 4, সর্বোচ্চ 4, তাই 4+4 <=11

  • [৪,৬], এখানে সর্বনিম্ন ৪, সর্বোচ্চ ৬, তাই ৪+৬ <=১১

  • [৪,৬,৭], এখানে সর্বনিম্ন ৪, সর্বোচ্চ ৭, তাই ৪+৭ <=১১

  • [৪,৭], এখানে সর্বনিম্ন ৪, সর্বোচ্চ ৭, তাই ৪+৭ <=১১

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • তালিকার সংখ্যাগুলি সাজান

  • m :=10^9 + 7

  • বাম :=0

  • ডান:=সংখ্যার আকার - 1

  • res :=0

  • যখন বামে <=ডানে, কর

    • যদি nums[left] + nums[ডান]> k হয়, তাহলে

      • ডান :=ডান - 1

    • অন্যথায়,

      • num_inside :=ডান - বাম

      • res :=(res + (2^num_inside) mod m) mod m

      • left :=left + 1

  • রিটার্ন রিটার্ন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

def solve(nums, k):
   nums.sort()
   m = 10**9 + 7
   left = 0
   right = len(nums) - 1
   res = 0
   while(left <= right):
      if nums[left] + nums[right] > k:
         right -= 1
      else:
         num_inside = right - left
         res = (res + pow(2, num_inside, m)) % m
         left += 1
   return res
nums = [4,6,7,8]
k = 11
print(solve(nums, k))

ইনপুট

[4,6,7,8], 11

আউটপুট

4

  1. দীর্ঘতম দৈর্ঘ্য খুঁজে বের করার জন্য প্রোগ্রাম, যা পাইথনে দেওয়া অক্ষর ব্যবহার করে তৈরি করা যেতে পারে

  2. পাইথনে প্রদত্ত সংখ্যার সমস্ত অঙ্কের যোগফল খুঁজে বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

  4. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম