मान लीजिए कि हमारे पास नंबर ए की एक सूची है, हमें सभी डुप्लीकेट नंबरों को ढूंढना होगा और उनकी पिछली बारंबारता को हटाना होगा।
इसलिए, यदि इनपुट [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]