Last active
May 24, 2023 00:44
-
-
Save quattrococodrilo/7485add28b39d5beaba0a7b775d36ce6 to your computer and use it in GitHub Desktop.
Revisions
-
quattrococodrilo renamed this gist
May 24, 2023 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
quattrococodrilo revised this gist
May 24, 2023 . 1 changed file with 15 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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; } -
quattrococodrilo created this gist
May 24, 2023 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal 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; }