Escriba un programa para imprimir todos los LÍDERES en la array. Un elemento es líder si es mayor que todos los elementos a su lado derecho. Y el elemento más a la derecha es siempre un líder. Por ejemplo, en el arreglo {16, 17, 4, 3, 5, 2}, los líderes son 17, 5 y 2.
Deje que el arreglo de entrada sea arr[] y el tamaño del arreglo sea size .
Método 1 (Simple)
Use dos bucles. El ciclo externo va desde 0 hasta tamaño – 1 y uno por uno selecciona todos los elementos de izquierda a derecha. El bucle interno compara el elemento elegido con todos los elementos de su lado derecho. Si el elemento seleccionado es mayor que todos los elementos a su lado derecho, entonces el elemento seleccionado es el líder.
PHP
<?php // PHP Function to print // leaders in an array function printLeaders($arr, $size) { for ($i = 0; $i < $size; $i++) { for ($j = $i + 1; $j < $size; $j++) { if ($arr[$i] <=$arr[$j]) break; } // the loop didn't break if ($j == $size) echo($arr[$i] . " "); } } // Driver Code $arr = array(16, 17, 4, 3, 5, 2); $n = sizeof($arr); printLeaders($arr, $n); // This code is contributed // by Shivi_Aggarwal ?>
Producción:
17 5 2
Complejidad de tiempo: O(n*n)
Método 2 (Escanear desde la derecha)
Escanee todos los elementos de derecha a izquierda en una array y realice un seguimiento del máximo hasta ahora. Cuando el máximo cambie su valor, imprímalo.
La imagen de abajo es una ejecución en seco del enfoque anterior:
A continuación se muestra la implementación del enfoque anterior:
PHP
<?php // PHP Function to print // leaders in an array function printLeaders(&$arr, $size) { $max_from_right = $arr[$size - 1]; // Rightmost element // is always leader echo($max_from_right); echo(" "); for ($i = $size - 2; $i >= 0; $i--) { if ($max_from_right < $arr[$i]) { $max_from_right = $arr[$i]; echo($max_from_right); echo(" "); } } } // Driver Code $arr = array(16, 17, 4, 3, 5, 2); $n = sizeof($arr); printLeaders($arr, $n); // This code is contributed // by Shivi_Aggarwal ?>
Producción:
2 5 17
Complejidad de tiempo: O(n)
Consulte el artículo completo sobre Líderes en una array 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