Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save quattrococodrilo/7485add28b39d5beaba0a7b775d36ce6 to your computer and use it in GitHub Desktop.

Select an option

Save quattrococodrilo/7485add28b39d5beaba0a7b775d36ce6 to your computer and use it in GitHub Desktop.

Revisions

  1. quattrococodrilo renamed this gist May 24, 2023. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. quattrococodrilo revised this gist May 24, 2023. 1 changed file with 15 additions and 0 deletions.
    15 changes: 15 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,15 @@
    // Aquí la función por si se quiere probar,
    // ya que en Hackerrank da error si se ejecuta con los comentarios.

    function minimumAbsoluteDifference($arr) {
    sort($arr);
    $min = PHP_INT_MAX;
    for ($i = 0; $i < count($arr) - 1; $i++) {
    $operation = abs($arr[$i] - $arr[$i + 1]);
    if ($operation < $min) {
    $min = $operation;
    }
    }

    return $min;
    }
  3. quattrococodrilo created this gist May 24, 2023.
    31 changes: 31 additions & 0 deletions Minimum_Absolute_Difference_in_an_Array.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    function minimumAbsoluteDifference($arr) {
    // Primero se ordena de esta manera
    // los elementos para que los elementos queden ordenados
    // según su proximidad.
    sort($arr);
    // $min = pow(10, 9) + 1;
    // Investigué en la documentación de PHP que hay una constante
    // para obtener el máximo valor de un entero en la plataforma
    // en la que se ejecuta el programa.
    $min = PHP_INT_MAX;
    // Se itera una sola vez en el array.
    for ($i = 0; $i < count($arr) - 1; $i++) {
    // Se hace la differencia entre los números que se encuentran próximos,
    // no hace falta formar pajeras porque ya están ordenados,
    // en un plano carteciano ya están ordenados según suproximidad,
    // de tal forma que en algún momento se hará la diferencia de
    // los números que se encuentren más próximos entre sí
    // lo que daría la diferencia mínima.
    $operation = abs($arr[$i] - $arr[$i + 1]);
    // Se compara de esta manera porque usar el operador ternario
    // implicaría una operación más.
    if ($operation < $min) {
    $min = $operation;
    }
    }

    // La complejidad computacional termina siendo de O(n log n),
    // porque sólo se iteró una vez, claro más el sort pero al ser una
    // función propia de PHP ya está optimizada.
    return $min;
    }