LeetCode resolución de problemas # 14: Retire el elemento

título

Dada una matriz nums y un valor val, es necesario colocar los elementos para eliminar todos los valores iguales Val, y devuelve la nueva longitud de la matriz después de la eliminación.

No utilice espacio adicional para una matriz, debe modificar la matriz de entrada en su lugar y completado en las condiciones de uso O (1) espacio adicional.

Orden de los elementos puede ser cambiado. No es necesario tener en cuenta más allá de los elementos de la nueva longitud de la matriz detrás.

Ejemplo 1:

给定 nums = [3,2,2,3], val = 3,

函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。

你不需要考虑数组中超出新长度后面的元素。

Ejemplo 2:

给定 nums = [0,1,2,2,3,0,4,2], val = 2,

函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。

注意这五个元素可为任意顺序。

你不需要考虑数组中超出新长度后面的元素。

Ejemplo 3:

给定 nums = [0,1,2,2,3,0,4,2], val = 2,

函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。

注意这五个元素可为任意顺序。

你不需要考虑数组中超出新长度后面的元素。

La primera redacción:

class Solution {
    public int removeElement(int[] nums, int val) {
        if (nums == null  || nums.length == 0){
            return 0;
        }

        int result = nums.length;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] == val){
                result = result - 1;
            }
        }

        return result;
        
    }
}

La razón es que la falta de presentación titulada pidió que regresara la longitud de la nueva matriz, por lo que tiene que tener una nueva matriz para producir el trabajo. Según el texto de la primera edición sólo para obtener la longitud, pero hay elementos de la matriz original sin eliminar especificado, lo que lleva al fracaso.

Después de modificar el texto:

class Solution {
    public int removeElement(int[] nums, int val) {
        if (nums == null  || nums.length == 0){
            return 0;
        }

        int result = 0;
        for (int i = 0; i < nums.length; i++) {
            if (nums[i] != val){
                nums[result++] = nums[i];
            }
        }

        return result;
        
    }
}
Publicado 88 artículos originales · ganado elogios 49 · Vistas de 100.000 +

Supongo que te gusta

Origin blog.csdn.net/Diamond_Tao/article/details/102978713
Recomendado
Clasificación