Вопрос. Дан непустой массив цифр, представляющий неотрицательное целое число плюс единица к целому числу.
Цифры хранятся таким образом, что самая значащая цифра находится в начале списка, а каждый элемент массива содержит одну цифру.
Вы можете предположить, что целое число не содержит начальных нулей, кроме самого числа 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; } }
Это было быстро!!!
Больше постов ищите здесь.
Удачи и Чао!