কম্পিউটার

পাইথনে পেয়ারওয়াইজ সংলগ্ন রাশি ছোট করার জন্য প্রোগ্রাম


ধরুন আমাদের কাছে অ-ঋণাত্মক সংখ্যাগুলির একটি তালিকা আছে যা সংখ্যা বলে এবং একটি অ-ঋণাত্মক মান k। এখন ধরুন আমরা একটি অপারেশন করতে পারি যেখানে আমরা সংখ্যায় একটি একক ধনাত্মক নম্বর নির্বাচন করি এবং এটিকে 1 দ্বারা হ্রাস করি। আমাদের ন্যূনতম সংখ্যক ক্রিয়াকলাপ খুঁজে বের করতে হবে যাতে তালিকায় সংলগ্ন মানের প্রতিটি জোড়ার যোগফল <=k। যদি উত্তরটি খুব বড় হয়, তাহলে ফলাফল মোড 10^9 + 7 ফেরত দিন।

সুতরাং, যদি ইনপুটটি nums =[4, 6, 2, 5], k =6 এর মত হয়, তাহলে আউটপুট হবে 5, কারণ আমরা তালিকাটিকে [3, 3, 1, 4] এ কমিয়ে দিতে পারি যা মোট 5টি হ্রাস। এখানে প্রতিটি সন্নিহিত জোড়ার যোগফল হল <=6.

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

  • m =10^9 + 7
  • উত্তর :=0
  • আমি 0 থেকে সংখ্যার আকার - 1 এর রেঞ্জের জন্য, কর
    • sm :=nums[i] + nums[i + 1]
    • diff :=সর্বাধিক sm - k এবং 0
    • সংখ্যা[i + 1] :=সংখ্যা[i + 1] - পার্থক্য
    • যদি সংখ্যা[i + 1] <0 হয়, তাহলে
      • সংখ্যা[i + 1] :=0
    • উত্তর :=উত্তর + পার্থক্য
  • উত্তর mod m

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

উদাহরণ

m = 10 ** 9 + 7
class Solution:
   def solve(self, nums, k):
      ans = 0
      for i in range(0, len(nums) - 1):
         sm = nums[i] + nums[i + 1]
         diff = max(sm - k, 0)
         nums[i + 1] -= diff
         if nums[i + 1] < 0:
            nums[i + 1] = 0
         ans += diff
      return ans % m
ob = Solution()
nums = [4, 6, 2, 5]
k = 6 print(ob.solve(nums, k))

ইনপুট

[4, 6, 2, 5], 6

আউটপুট

5

  1. পাইথনে একটি এন-আরি গাছের একটি অনুলিপি তৈরি করার প্রোগ্রাম

  2. প্রদত্ত স্ট্রিং পরীক্ষা করার প্রোগ্রামটি প্যানগ্রাম নাকি পাইথনে নয়

  3. পাইথনে ভারতীয় পতাকা বানানোর প্রোগ্রাম

  4. কলযোগ্য() পাইথন প্রোগ্রামে