📌  相关文章
📜  从数组中按排序顺序打印所有重复的相邻对(1)

📅  最后修改于: 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