LeetCode 150 preguntas de entrevista clásicas, más una (simple)

1. Tema

Dado un número entero no negativo representado por una matriz no vacía de números enteros, agregue uno al número .

El dígito más alto se almacena en la cabeza de la matriz, y cada elemento de la matriz almacena solo un número.

Puede suponer que este entero no comenzará con un cero que no sea el entero 0.

2. Ejemplos

Ejemplo 1:

Entrada: dígitos = [1,2,3]
Salida: [1,2,4]
Explicación: La matriz de entrada representa el dígito 123.

 Ejemplo 2:

Entrada: dígitos = [4,3,2,1]
Salida: [4,3,2,2]
Explicación: La matriz de entrada representa el dígito 4321. 

 Ejemplo 3:

entrada: dígitos = [0]
salida: [1]


 3. Ideas

Esta pregunta parece relativamente simple, pero también hay trampas.

El primer punto, cuando el último dígito es 9, se requiere un acarreo al sumar uno.

En segundo lugar, cuando el primer dígito es 9, agregar uno necesita recrear una nueva matriz y asignar un valor de 1 al primer dígito de la nueva matriz.

4. Código

class Solution {
    public int[] plusOne(int[] digits) {
         if (digits.length==1 &&digits[0]==0){
            digits[0] = 1;
        }else {
            digits[digits.length-1]+=1;
        }
         for (int i= digits.length-1;i>=0;i--){
            if (digits[i]==10){
                if (digits.length ==1 || i == 0){
                    digits = new int[digits.length+1];
                    digits[0]=1;
                    break;
                }
                digits[i] =0;
                digits[i-1]+=1;
            }
        }
        return digits;
    }
}

 ¿lo hará? ¡Intenta desafiar la siguiente pregunta! ♪(^∀^●)ノシ(●´∀`)♪

LeetCode 150 preguntas de entrevista clásicas, más una (simple)_Alphamilk's Blog-CSDN Blog

Supongo que te gusta

Origin blog.csdn.net/dogxixi/article/details/132340804
Recomendado
Clasificación