मान लीजिए कि हमारे पास कुछ तत्वों के साथ एक सरणी है जहां तत्व कई बार प्रकट हो सकते हैं। हमें सरणी को इस तरह से क्रमबद्ध करना होगा कि तत्वों को उनकी आवृत्ति में वृद्धि के अनुसार क्रमबद्ध किया जाए। तो कौन सा तत्व कम समय में दिखाई देता है वह पहले आएगा और इसी तरह।
इसलिए, यदि इनपुट अंकों की तरह है =[1,5,3,1,3,1,2,5], तो आउटपुट [2, 5, 5, 3, 3, 1, 1, 1]<होगा। /पी>
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
एमपी:=एक नया नक्शा
-
अंक से प्रत्येक विशिष्ट तत्व के लिए, करें
-
x:=अंकों में मौजूद i की संख्या
-
अगर x mp में मौजूद है, तो
-
mp[x]
. के अंत में i डालें
-
-
अन्यथा mp[x] :=केवल एक तत्व वाली सूची मैं
-
-
उत्तर:=एक नई सूची
-
प्रत्येक के लिए मैं कुंजी के आधार पर एमपी को क्रमबद्ध करता हूं, करता हूं
-
प्रत्येक j के लिए सूची mp[i] को उल्टे क्रम में क्रमबद्ध करें, करें
-
j, i कई बार ans में डालें
-
-
-
वापसी उत्तर
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(nums): mp = {} for i in set(nums): x=nums.count(i) try: mp[x].append(i) except: mp[x]=[i] ans=[] for i in sorted(mp): for j in sorted(mp[i], reverse=True): ans.extend([j]*i) return ans nums = [1,5,3,1,3,1,2,5] print(solve(nums))
इनपुट
[1,5,3,1,3,1,2,5]
आउटपुट
[2, 5, 5, 3, 3, 1, 1, 1]