Problema 26 de LeetCode: eliminar duplicados de la matriz ordenada
Dada una matriz de números enteros ordenados en orden no decreciente, elimine los duplicados en el lugar de modo que cada elemento único aparezca solo una vez. El orden relativo de los elementos debe mantenerse igual.
Dado que es imposible cambiar la longitud de la matriz en algunos idiomas, debe colocar el resultado en la primera parte de la matriz nums. Más formalmente, si hay k elementos después de eliminar los duplicados, entonces los primeros k elementos de nums deberían contener el resultado final. No importa lo que dejes más allá de los primeros k elementos.
Devuelve k después de colocar el resultado final en las primeras k ranuras de nums.
No asigne espacio extra para otra matriz. Debe hacer esto modificando la matriz de entrada en el lugar con memoria adicional O (1).
var removeDuplicates = function (nums) { // Iterating the full array for (let i = 0; i < nums.length; i++) { // Checking for the repeating number if (nums[i] === nums[i + 1]) { // Removing the element which is repeating nums = nums.slice(0, i + 1).concat(nums.slice(i + 2)); // Resetting the index after removing the element i--; } } console.log(nums); return nums.length; }; console.log(removeDuplicates([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4]));Este es el resultado del código JS anterior en Visual Studio Code.
No puedo enviar este código a LeetCode. El resultado esperado es la matriz nums editada, mientras que mi salida no coincide. ¿Cómo resuelvo este problema?
Tu solución es demasiado complicada. Para eliminar duplicados de una matriz, simplemente haga lo siguiente:
const removeDuplicates = (arr) => [...new Set(arr)] console.log(removeDuplicates([0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4]));