Tenemos una array ordenada con elementos duplicados y tenemos que encontrar el índice del último elemento duplicado e imprimir el índice y también imprimir el elemento duplicado. Si no se encuentra tal elemento, imprima un mensaje.
Ejemplos:
Input : arr[] = {1, 5, 5, 6, 6, 7} Output : Last index: 4 Last duplicate item: 6 Input : arr[] = {1, 2, 3, 4, 5} Output : No duplicate found
Simplemente iteramos a través de la array en orden inverso y comparamos el elemento actual y el anterior. Si se encuentra una coincidencia, imprimimos el índice y el elemento duplicado. Como esta es una array ordenada, será el último duplicado. Si no se encuentra dicho elemento, imprimiremos el mensaje correspondiente.
1- for i = n-1 to 0 if (arr[i] == arr[i-1]) Print current element and its index. Return 2- If no such element found print a message of no duplicate found.
Java
// Java code to print last duplicate element // and its index in a sorted array import java.io.*; class GFG { static void dupLastIndex(int arr[], int n) { // if array is null or size is less // than equal to 0 return if (arr == null || n <= 0) return; // compare elements and return last // duplicate and its index for (int i = n - 1; i > 0; i--) { if (arr[i] == arr[i - 1]) { System.out.println("Last index:" + i); System.out.println("Last duplicate item: " + arr[i]); return; } } // If we reach here, then no duplicate // found. System.out.print("no duplicate found"); } // Driver code public static void main (String[] args) { int arr[] = {1, 5, 5, 6, 6, 7, 9}; int n = arr.length; dupLastIndex(arr, n); } } // This code is contributed by vt_m
Last index: 4 Last duplicate item: 6
Complejidad de tiempo: O(n), donde n representa el tamaño de la array dada.
Espacio auxiliar: O(1), no se requiere espacio adicional, por lo que es una constante.
Consulte el artículo completo sobre Último elemento duplicado en una array ordenada para obtener más detalles.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA