मान लीजिए कि हमारे पास नंबर ए की एक सूची है, हमें सभी डुप्लीकेट नंबरों को ढूंढना होगा और उनकी पिछली बारंबारता को हटाना होगा।
इसलिए, यदि इनपुट [10, 30, 40, 10, 30, 50] जैसा है, तो आउटपुट [10, 30, 40, 50]
होगा।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- देखा:=एक नया नक्शा
- d:=एक नया नक्शा
- मैं के लिए 0 से लेकर अंकों के आकार तक, करें
- यदि nums[i] d में नहीं है, तो
- d[nums[i]]:=1
- अन्यथा,
- d[nums[i]] :=d[nums[i]] + 1
- यदि nums[i] d में नहीं है, तो
- i:=0
- जबकि मैं <अंकों का आकार, करते हैं
- n:=d[nums[i]]
- अगर nums[i] दिखाई नहीं दे रहा है, तो
- देखा[nums[i]]:=1
- अन्यथा,
- देखा[संख्या[i]] :=देखा[संख्या[i]] + 1
- यदि n देखा के समान है[nums[i]] और n> 1, तो
- संख्याओं से ith तत्व हटाएं
- i :=i - 1
- i :=i + 1
- रिटर्न अंक
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, nums): seen={} d={} for i in range(len(nums)): if not nums[i] in d: d[nums[i]]=1 else: d[nums[i]]+=1 i=0 while i < len(nums): n=d[nums[i]] if not nums[i] in seen: seen[nums[i]]=1 else: seen[nums[i]]+=1 if n == seen[nums[i]] and n > 1: nums.pop(i) i-=1 i+=1 return nums ob = Solution() print(ob.solve([10, 30, 40, 10, 30, 50]))
इनपुट
[10, 30, 40, 10, 30, 50]
आउटपुट
[10, 30, 40, 50]