मान लीजिए कि हमारे पास nums नामक एक सरणी है जहां केवल पूर्णांक संग्रहीत किए जाते हैं। यदि हमारे पास एक संख्या k है। k तत्वों को हटाने के बाद हमें कम से कम अद्वितीय तत्वों की संख्या ज्ञात करनी होगी।
इसलिए, यदि इनपुट nums =[5,4,2,2,4,4,3], k =3 जैसा है, तो आउटपुट 2 होगा, क्योंकि अगर हम 5 और 3 को हटा दें, और या तो 2 में से कोई एक या 4 में से कोई एक, तो केवल 2 और 4 ही बचे रहेंगे।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
शब्दकोश:=एक नया नक्शा
-
अंकों में प्रत्येक अंक के लिए, करें
-
अगर num डिक्शनरी में नहीं है, तो
-
शब्दकोश [संख्या]:=1
-
-
अन्यथा,
-
शब्दकोश [संख्या]:=शब्दकोश [संख्या] + 1
-
-
-
गिनती:=शब्दकोश का आकार
-
शब्दकोश के सभी मानों के क्रमबद्ध क्रम में प्रत्येक आवृत्ति के लिए, करें
-
k :=k - आवृत्ति
-
अगर के <0, तो
-
वापसी की संख्या
-
-
अन्यथा,
-
गिनती :=गिनती - 1
-
-
-
वापसी की संख्या
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(nums, k): dictionary={} for num in nums: if num not in dictionary: dictionary[num]=1 else: dictionary[num]+=1 count=len(dictionary) for frequency in sorted(dictionary.values()): k-=frequency if(k<0): return count else: count-=1 return count nums = [5,4,2,2,4,4,3] k = 3 print(solve(nums, k))
इनपुट
[5,4,2,2,4,4,3], 3
आउटपुट
2