ধরুন আমাদের পূর্ণসংখ্যার একটি অ-খালি অ্যারে আছে। আমাদের 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]