मान लीजिए हमारे पास nums नामक एक सरणी है जहां केवल पूर्णांक संग्रहीत हैं। यदि हमारे पास एक संख्या k है। हमें ठीक k तत्वों को हटाने के बाद कम से कम अद्वितीय तत्वों की संख्या ढूंढनी है।
उदाहरण के लिए, यदि इनपुट nums = [5,4,2,2,4,4,3], k = 3 है, तो आउटपुट 2 होगा, क्योंकि यदि हम 5 और 3 को हटाते हैं, और या तो 2 में से कोई एक या 4 में से कोई एक, तो केवल 2 और 4 बचेंगे।
हल करने के चरण
dictionary := एक नया मैप
nums में प्रत्येक num के लिए, करें
यदि num, dictionary में नहीं है, तो
dictionary[num] := 1
अन्यथा,
dictionary[num] := dictionary[num] + 1
count := dictionary का आकार
dictionary के सभी मानों के सॉर्ट किए गए क्रम में प्रत्येक frequency के लिए, करें
k := k - frequency
यदि k < 0, तो
count वापस करें
अन्यथा,
count := count - 1
count वापस करें
उदाहरण
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