Estoy trabajando en un código en el que necesito encontrar el recuento del grupo de matrices con una diferencia entre los elementos del grupo de matrices que debe ser inferior a k
Ejemplo El número de premios por película son premios = [1, 5, 4, 6, 8, 9, 2] y la diferencia máxima permitida es k = 3.
Una forma de dividir las películas en el número mínimo de grupos es:
El primer grupo puede contener [2, 1]. La diferencia máxima entre los premios de dos películas cualesquiera es 1, que no supera k.
El segundo grupo puede contener [5, 4, 6]. La diferencia máxima entre premios de dos películas cualesquiera es 2, que no exceda k
El tercer grupo puede contener [8, 9]. La diferencia máxima entre los premios de dos películas cualesquiera es 1, que no supera k. Las películas se pueden dividir en un mínimo de 3 grupos.
a continuación está mi código pero no funciona. Que estoy haciendo mal. Por favor, ayúdame.
function minimumGroups(arr, k) { // Write your code here arr.sort(); let start = 0; if(arr.length == 0) return 0; // If arr has some value then at least can form 1 group let count = 1; for(let i = 0; i < arr.length; i++) { if(arr[i] - arr[start] > k) { count++; start = i; } } return count; }Algunos de los casos de prueba ocultos no pasan por el mismo escenario
Arr =[ 1, 13, 6, 8, 9, 3, 5 ] and K= 4 El resultado esperado es 3 pero obtengo 2
Este fragmento de código corrige el código actualizando .sort() .
function minimumGroups(arr, k) { // Write your code here arr.sort((a, b) => ab); // this line is updated. let start = 0; if(arr.length == 0) return 0; // If arr has some value then at least can form 1 group let count = 1; for(let i = 0; i < arr.length; i++) { if(arr[i] - arr[start] > k) { count++; start = i; } } return count; }; console.log(minimumGroups([ 1, 13, 6, 8, 9, 3, 5 ], 4));