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

পাইথনে k বার ইনক্রিমেন্ট করার পর সবচেয়ে বেশি ফ্রিকোয়েন্সি পাওয়া সংখ্যা বের করার প্রোগ্রাম


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

উদাহরণস্বরূপ, যদি ইনপুট হয় nums = [1, 0, 0, 0, 8, 8, 8, 8] এবং k = 8, তবে আউটপুট হবে 8, কারণ আমরা ১ কে ৭ বার বাড়িয়ে ৮ বানাতে পারি, এবং যেকোনো ০ কে ১ বানাতে পারি। তাহলে তালিকা হয়ে যাবে [8, 1, 0, 0, 8, 8, 8, 8]। সুতরাং ফলাফল ৮।

সমাধানের ধাপসমূহ:
  • nums তালিকাটি সর্ট করুন।
  • low := 0, high := 0
  • dist := 0, best := 0
  • ret := -1
  • high < len(nums) হলে লুপ চালান:
    • যদি high > 0 এবং nums[high] != nums[high-1] হয়, তবে:
      • dist := dist + (high - low) * (nums[high] - nums[high-1])
    • high := high + 1
    • dist > k হলে লুপ চালান:
      • dist := dist - nums[high-1] - nums[low]
      • low := low + 1
    • যদি high - low > best হয়, তবে:
      • best := high - low
      • ret := nums[high-1]
    • ret রিটার্ন করুন।
উদাহরণ কোড
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. পাইথনে লিস্ট থেকে সর্বোচ্চ সংখ্যা বের করা