Вопрос. Дан непустой массив цифр, представляющий неотрицательное целое число плюс единица к целому числу.

Цифры хранятся таким образом, что самая значащая цифра находится в начале списка, а каждый элемент массива содержит одну цифру.

Вы можете предположить, что целое число не содержит начальных нулей, кроме самого числа 0.

Пример 1:

Input: [1,2,3]
Output: [1,2,4]
Explanation: The array represents the integer 123.

Подход. Давайте не будем усложнять и перейдем к коду!

//Approach 1
//Runtime: 0ms
//Memory usage: 37.4MB
class Solution {
    public int[] plusOne(int[] digits) {
        int carryOver = 1;
        int temp = 0;
        for(int i = digits.length-1; i>=0 && carryOver==1; i--){
            temp = digits[i] + 1;
            digits[i] = temp%10;
            carryOver = temp/10;
        }
        if(carryOver==1){
            int[] newDigits = new int[digits.length+1];
            newDigits[0] = 1;
            for(int i = 0; i<digits.length; i++){
                newDigits[i+1] = digits[i];
            }
            return newDigits;
        }
        return digits;
    }
}

Это было быстро!!!

Больше постов ищите здесь.

Удачи и Чао!