程序查找重复元素并删除它们在Python中的最后一次出现
假设我们有一个数字A的列表,我们必须找到所有重复的数字并删除它们的最后出现次数。
因此,如果输入类似于[10,30,40,10,30,50],则输出将为[10,30,40,50]
为了解决这个问题,我们将遵循以下步骤-
看过:=新映射
d:=新映射
对于范围从0到nums的i,执行
d[nums[i]]:=d[nums[i]]+1
d[nums[i]]:=1
如果nums[i]不在d中,则
除此以外,
i:=0
当我<nums的大小,
从nums中删除第i个元素
我:=我-1
seen[nums[i]]:=seen[nums[i]]+1
seen[nums[i]]:=1
n:=d[nums[i]]
如果没有看到nums[i],则
除此以外,
如果n与see[nums[i]]相同且n>1,则
我:=我+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]