📅  最后修改于: 2023-12-03 15:06:34.673000             🧑  作者: Mango
这个问题可以通过模拟过程进行求解。
代码片段:
def remove_adjacent_duplicates(arr):
i = 0
while i < len(arr) - 1:
if arr[i] == arr[i + 1]:
arr.pop(i)
else:
i += 1
return arr
输入: [1, 2, 2, 3, 3, 3, 4]
输出: [1, 2, 3, 4]
遍历数组需要 $O(n)$ 的时间复杂度,每次删除元素需要$O(n)$的时间复杂度,总的时间复杂度为 $O(n^2)$。
空间复杂度取决于数组中重复元素的个数,最多需要 $O(n)$ 的空间复杂度存储删除后的结果。