C++程序 已排序数组中最后一个重复元素
我们有一个有重复元素的已排序数组,并且我们必须找到最后一个重复元素的索引并打印它的索引,并打印出重复元素。如果找不到这样的元素,则打印一个消息。
例如:
输入:arr[] = {1, 5, 5, 6, 6, 7}
输出:
Last index: 4
Last duplicate item: 6
输入:arr[] = {1, 2, 3, 4, 5}
输出:未找到重复项
我们只需从数组中逆向迭代并比较当前和前一个元素。如果找到匹配,则打印索引和重复元素。因为这是排序数组,所以它将是最后一个重复项。如果找不到这样的元素,则会打印相应的消息。
1- for i = n-1 to 0
if (arr[i] == arr[i-1])
Print current element and its index.
Return
2- 如果找不到这样的元素,则打印无重复项的消息。
输出:
时间复杂度: O(n),其中n表示给定数组的大小。
辅助空间: O(1),不需要额外的空间,因此它是一个常数。