मान लीजिए कि हमारे पास 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