কম্পিউটার

পাইথনে শীর্ষ K ঘন ঘন উপাদান


ধরুন আমাদের পূর্ণসংখ্যার একটি অ-খালি অ্যারে আছে। আমাদের kth সবচেয়ে ঘন ঘন উপাদানগুলি ফেরত দিতে হবে। সুতরাং যদি উপাদানগুলি [1,1,1,1,2,2,3,3,3] এবং k =2 হয়, তাহলে ফলাফল হবে

আনুষ্ঠানিকভাবে ফাংশনটি −

হওয়া উচিত
  • যদি i, j, k থাকে তাহলে সত্য প্রত্যাবর্তন করুন
  • যেমন arr[i]

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

  • num_freq =একটি খালি মানচিত্র, freq_list :=একটি খালি মানচিত্র
  • প্রতিটি উপাদানের জন্য i সংখ্যায়
    • যদি আমি num_freq-এ না থাকি, তাহলে num_freq[i] :=1, অন্যথায় num_freq[i] 1 দ্বারা বাড়ান
  • num_freq মানচিত্রে প্রতিটি কী-মানের জোড়ার জন্য
    • যদি freq_list এ মান উপস্থিত না থাকে, তাহলে freq_list[value] :=[key] সহ একটি তালিকা, অন্যথায় freq_list[value] অ্যারেতে কী সন্নিবেশ করান
  • res :=খালি তালিকা
  • এর জন্য i :=সংখ্যার দৈর্ঘ্য 0
      পর্যন্ত
    • যদি আমি freq_list-এ থাকি, তাহলে freq_list[i]-এর উপাদান res-এ যোগ করুন
    • যদি res এর দৈর্ঘ্য>=k হয়, তাহলে বিরতি
  • ফলাফল

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

উদাহরণ

class Solution(object):
   def topKFrequent(self, nums, k):
      number_frequency = {}
      frequency_list ={}
      for i in nums:
         if i not in number_frequency:
            number_frequency[i] = 1
         else:
            number_frequency[i] += 1
      for key,value in number_frequency.items():
         if value not in frequency_list:
            frequency_list[value] = [key]
         else:
            frequency_list[value].append(key)
      result = []
      for i in range(len(nums),0,-1):
         if i in frequency_list:
            result.extend(frequency_list[i])
         if len(result) >=k:
            break
      return result
ob1 = Solution()
print(ob1.topKFrequent([1,1,1,1,2,2,3,3,3], 2))

ইনপুট

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

আউটপুট

[1, 3]

  1. পাইথনে কাস্টম দৈর্ঘ্য ম্যাট্রিক্স

  2. পাইথনে টিপলের তালিকা থেকে শীর্ষ K ঘন ঘন উপাদান খুঁজুন

  3. পাইথনের তালিকায় পরপর উপাদান জোড়া

  4. পাইথনে রেঞ্জের উপাদানগুলি মুছুন