Python 程式:查詢重複元素並刪除其最後一次出現
假設我們有一個數字列表 A,我們需要找到所有重複的數字並刪除其最後一次出現。
因此,如果輸入類似於 [10, 30, 40, 10, 30, 50],則輸出將為 [10, 30, 40, 50]
為了解決這個問題,我們將遵循以下步驟:
- seen := 一個新的對映
- d := 一個新的對映
- 從 0 到 nums 大小迴圈,執行以下操作:
- 如果 nums[i] 不在 d 中,則
- d[nums[i]] := 1
- 否則,
- d[nums[i]] := d[nums[i]] + 1
- 如果 nums[i] 不在 d 中,則
- i := 0
- 當 i < nums 大小,執行以下操作:
- n := d[nums[i]]
- 如果 nums[i] 不在 seen 中,則
- seen[nums[i]] := 1
- 否則,
- seen[nums[i]] := seen[nums[i]] + 1
- 如果 n 等於 seen[nums[i]] 且 n > 1,則
- 從 nums 中刪除第 i 個元素
- i := i - 1
- i := i + 1
- 返回 nums
讓我們看看下面的實現以更好地理解:
示例
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]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP