मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे आइटम कहा जाता है और दूसरा मान n है। एक विक्रेता के पास यादृच्छिक आईडी वाले बैग में आइटम होते हैं। सेल्समैन बैग से जितने n आइटम हटा सकता है। n हटाने के बाद हमें बैग में न्यूनतम संख्या में अलग-अलग आईडी ढूंढनी होंगी।
इसलिए, यदि इनपुट आइटम की तरह है =[2, 2, 6, 6] n =2, तो आउटपुट 1 होगा क्योंकि हम आईडी 2 या आईडी 6 के साथ दो आइटम बेच सकते हैं, तो केवल एक लक्ष्य वाले आइटम होंगे वहाँ।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
- c :=वस्तुओं में मौजूद प्रत्येक तत्व की आवृत्ति
- उत्तर:=c का आकार
- freq:=c में सभी आवृत्तियों की सूची को क्रमबद्ध करें
- मैं :=0
- जबकि मैं <आवृत्ति का आकार, करते हैं
- अगर freq[i] <=n, तो
- n :=n - freq[i]
- उत्तर:=उत्तर - 1
- अन्यथा,
- वापसी उत्तर
- i :=i + 1
- अगर freq[i] <=n, तो
- वापसी 0
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
from collections import Counter class Solution: def solve(self, items, n): c = Counter(items) ans = len(c) freq = sorted(c.values()) i = 0 while i < len(freq): if freq[i] <= n: n -= freq[i] ans -= 1 else: return ans i += 1 return 0 ob = Solution() items = [2, 2, 6, 6] n = 2 print(ob.solve(items, n))
इनपुट
[2, 2, 6, 6], 2
आउटपुट
1