কম্পিউটার

পাইথনে k অপারেশনের পর সর্বনিম্ন সম্ভাব্য সর্বোচ্চ মান খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে সংখ্যার একটি তালিকা আছে যার নাম nums এবং আরেকটি মান k। এখন আমাদের একটি অপারেশন বিবেচনা করা যাক যেখানে আমরা তালিকার যেকোনো উপাদান থেকে 1 বিয়োগ করতে পারি। আমরা এই অপারেশন k বার সঞ্চালন করতে পারেন. k-এর এই ধরনের ক্রিয়াকলাপগুলির পরে আমাদের তালিকায় সর্বনিম্ন সম্ভাব্য সর্বাধিক মান খুঁজে বের করতে হবে।

সুতরাং, ইনপুট যদি nums =[3, 4, 6, 5] k =6 এর মত হয়, তাহলে আউটপুট হবে 3, যেমন আমরা 4 বার কমাতে পারি, 6 তিনবার এবং 5 বার করতে পারি [3,3,3, 3]।

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

  • বিপরীত ক্রমে সংখ্যা সাজান
  • i :=0
  • curr :=সংখ্যা[0]
  • যখন k> 0, do
    • যখন i <সংখ্যা এবং সংখ্যার আকার [i] curr এর মতো, do
      • i :=i + 1
    • যদি k>=i, তারপর
      • k :=k - i
      • curr :=curr - 1
    • অন্যথায়,
      • রিটার্ন কর
  • রিটার্ন কর

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

উদাহরণ

class Solution:
   def solve(self, nums, k):
      nums.sort(reverse=True)
      i = 0
      curr = nums[0]
      while k > 0:
         while i < len(nums) and nums[i] == curr:
            i += 1
         if k >= i:
            k -= i
            curr -= 1
         else:
            return curr
      return curr

ob = Solution()
nums = [3, 4, 6, 5]
k = 6
print(ob.solve(nums, k))

ইনপুট

[3, 4, 6, 5], 6

আউটপুট

3

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

  2. পাইথনে N থেকে 1 কমাতে সর্বাধিক অপারেশন খুঁজুন

  3. পাইথন প্রোগ্রাম ডিকশনারিতে দ্বিতীয় সর্বোচ্চ মান খুঁজে পেতে

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