কম্পিউটার

পাইথনে সবচেয়ে কম সময় নেওয়ার জন্য কাজগুলি নির্ধারণ করার জন্য প্রোগ্রাম


ধরুন আমাদের কাছে টাস্ক নামক মানের একটি তালিকা আছে যেখানে প্রতিটি ভিন্ন মান একটি ভিন্ন টাস্ক টাইপের প্রতিনিধিত্ব করে এবং আমাদের কাছে একটি অ-নেতিবাচক পূর্ণসংখ্যা k আছে। প্রতিটি টাস্ক সম্পূর্ণ হতে এক মিনিট চায়, কিন্তু একই ধরনের দুটি কাজ করার মধ্যে আমাদের অবশ্যই k মিনিট অপেক্ষা করতে হবে। যে কোন সময়, আমরা একটি কাজ করতে বা অপেক্ষা করতে পারি। সমস্ত কাজ সম্পূর্ণ করতে আমাদের সবচেয়ে কম সময় বের করতে হবে।

সুতরাং, যদি ইনপুটটি সংখ্যা =[2, 2, 2, 3, 3, 2], k =1 এর মতো হয়, তাহলে আউটপুট হবে 7, যেমন সর্বোত্তম ক্রম [2, 3, 2, 3, 2, অপেক্ষা করছি, 2]।

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

  • c :=সংখ্যায় সমস্ত মানের গণনা

  • উত্তর :=0, শেষ আকার :=0

  • যখন c অ-শূন্য, কর

    • lastsize :=c এর আকার

    • প্রতিটি মানের জন্য x সর্বাধিক সাধারণ (k + 1) মানের c, do

      • c[x] :=c[x] − 1

        • যদি c[x] 0 এর সমান হয়, তাহলে

          • c[x]

            সরান
    • ans :=ans + k + 1

  • উত্তর + শেষ আকার - (k + 1)

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

উদাহরণ

class Solution:
   def solve(self, nums, k):
      from collections import Counter
      c = Counter(nums)
      ans = 0
      lastsize = 0
      while c:
         lastsize = len(c)
         for x, _ in c.most_common(k + 1):
            c[x] -= 1
            if c[x] == 0:
               del c[x]
         ans += k + 1
      return ans + lastsize - (k + 1)
ob1 = Solution()
nums = [2, 2, 2, 3, 3, 2]
k = 1
print(ob1.solve(nums, k))

ইনপুট

[2, 2, 2, 3, 3, 2], 1

আউটপুট

7

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

  2. পাইথন প্রোগ্রাম সময়কে 12 ঘন্টা থেকে 24 ঘন্টা ফরম্যাটে রূপান্তর করতে

  3. একটি 2D অ্যারেতে k'th ক্ষুদ্রতম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম

  4. আমি কিভাবে একটি পাইথন প্রোগ্রামের কার্যকর করার সময় পেতে পারি?