কম্পিউটার

পাইথনে k বৃদ্ধির পরে সর্বাধিক সংঘটিত সংখ্যা খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যার নাম nums এবং আরেকটি মান k। আসুন একটি অপারেশন বিবেচনা করি যেখানে আমরা একটি করে কিছু উপাদান বৃদ্ধি করি। আমরা সর্বাধিক k বার পারফর্ম করতে পারি, আমাদের সবচেয়ে ঘনঘন সংখ্যার মান খুঁজে বের করতে হবে যা আমরা পেতে পারি। যদি একাধিক সমাধান থাকে, তাহলে সম্ভাব্য ক্ষুদ্রতম সংখ্যা নির্বাচন করুন।

সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1, 0, 0, 0, 8, 8, 8, 8] k =8, তাহলে আউটপুট হবে 8, যেমন আমরা 8 পেতে 1, 7 গুণ বাড়াতে পারি, এবং যেকোনো 0 থেকে 1 বাড়ান, তাই, আমরা [8, 1, 0, 0, 8, 8, 8, 8] পাব। সুতরাং ফলাফল 8.

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

  • তালিকা সংখ্যা সাজান
  • নিম্ন :=0, উচ্চ :=0
  • dist :=0, সেরা :=0
  • ret :=-1
  • যখন উচ্চ <সংখ্যার আকার, কর
    • যদি high> 0 এবং nums[high] nums[high - 1] এর মত না হয়, তাহলে
      • dist :=dist +(high - low) *(nums[high] - nums[high - 1])
    • উচ্চ :=উচ্চ + 1
    • যদিও dist> k, do
      • dist :=dist - nums[high - 1] - nums[low]
      • low :=low + 1
    • যদি উচ্চ - নিম্ন> সর্বোত্তম, তাহলে
      • সর্বোত্তম :=উচ্চ - নিম্ন
      • ret :=সংখ্যা[উচ্চ - 1]
    • রিটার্ন রিটার্ন

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

উদাহরণ কোড

class Solution:
   def solve(self, nums, k):
      nums.sort()
      low, high = 0, 0
      dist = 0
      best = 0
      ret = -1
      while high < len(nums):
         if high > 0 and nums[high] != nums[high - 1]:
            dist += (high - low) * (nums[high] - nums[high - 1])
            high += 1
            while dist > k:
               dist -= nums[high - 1] - nums[low]
               low += 1
               if high - low > best:
                  best = high - low
                  ret = nums[high - 1]
               return ret

ob = Solution()
nums = [1, 0, 0, 0, 8, 8, 8, 8]
k = 8
print(ob.solve(nums, k))

ইনপুট

[1, 0, 0, 0, 8, 8, 8, 8], 8

আউটপুট

8

  1. পাইথনে মার্জ করার পরে ন্যূনতম সংখ্যার রঙগুলি খুঁজে বের করার প্রোগ্রামটি থাকে

  2. পাইথনে n আইটেম বিক্রি করার পরে অবশিষ্ট আইটেম সংখ্যা খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে K বৃদ্ধির পর দীর্ঘতম সমতুল্য সাবলিস্ট খুঁজতে প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকায় সবচেয়ে বড় সংখ্যা খুঁজে বের করতে