Categorías
Algorithms Interview

LeetCode – Plus One (Java)

Dado un número no negativo representado como una matriz de dígitos, más uno al número. Los dígitos se almacenan de manera que el dígito más significativo esté al principio de la lista.

Solución Java

Para resolver este problema, podemos usar una bandera para marcar si es necesario cambiar el dígito actual.

public int[] plusOne(int[] digits) {
    if(digits==null||digits.length==0)
        return new int[0];
 
    int carry = 1;    
    for(int i=digits.length-1; i>=0; i--){
        int sum = digits[i]+carry;
        if(sum>=10){
            carry=1;
        }else{
            carry=0;
        }
        digits[i]=sum%10;
    }
 
    if(carry==1){
        int[] result = new int[digits.length+1];
        System.arraycopy(digits, 0, result, 1, digits.length);
        result[0]=1;
        return result;
    }else{
        //int[] result = new int[digits.length];
        return digits;
    }
}

  LeetCode - Lista vinculada inversa II (Java)

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *