Сложность: easy
Вам дано большое число, представленное в виде массива целых чисел digits, где каждый элемент digits[i] — это i-я цифра числа. Цифры расположены в порядке от старшей к младшей слева направо. Большое число не содержит ведущих нулей.
Увеличьте большое число на один и верните результирующий массив цифр.
Пример:
Input: digits = [1,2,3]
Output: [1,2,4]
Explanation: The array represents the integer 123.
Incrementing by one gives 123 + 1 = 124.
Thus, the result should be [1,2,4].
👨💻 Алгоритм:
1⃣Проходим по входному массиву, начиная с конца массива.
2⃣Устанавливаем все девятки на конце массива в ноль. Если мы встречаем цифру, не равную девяти, увеличиваем её на один. Работа выполнена — возвращаем массив цифр.
3⃣Мы здесь, потому что все цифры были равны девяти. Теперь они все установлены в ноль. Затем мы добавляем цифру 1 в начало остальных цифр и возвращаем результат
😎 Решение:
function plusOne($digits) {
$n = count($digits);
for ($i = $n - 1; $i >= 0; --$i) {
if ($digits[$i] == 9) {
$digits[$i] = 0;
} else {
$digits[$i]++;
return $digits;
}
}
array_unshift($digits, 1);
return $digits;
}Ставь 👍 и забирай 📚 Базу знаний