Programa Php para Líderes en una array

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *