📅  最后修改于: 2023-12-03 15:21:58.720000             🧑  作者: Mango
给定一个整数数组,要求按升序的顺序输出所有重复的相邻对。例如,对于数组 [1, 2, 2, 3, 3, 3, 4, 5, 5],正确的输出为:
2 2
3 3
3 3
5 5
我们可以使用一个指针来记录当前位置的数字,另一个指针则从当前位置往后遍历,找到和当前位置数字相同的数,就输出这一对相同的数字。然后将当前指针移动到下一个不同的数字处,继续重复该过程。具体实现如下:
def find_adjacent_duplicates(arr):
i = 0
while i < len(arr) - 1:
if arr[i] == arr[i+1]:
print(arr[i], arr[i+1])
j = i+1
while j < len(arr)-1 and arr[j] == arr[i]:
print(arr[i], arr[j+1])
j += 1
i = j
else:
i += 1
>>> arr = [1, 2, 2, 3, 3, 3, 4, 5, 5]
>>> find_adjacent_duplicates(arr)
2 2
3 3
3 3
5 5