LeetCode: Plus One

----- Условие ----- Дано целое число, представленное массивом цифр, где самый старший разряд имеет индекс 0. Необходимо добавить числу единицу и вернуть получившийся результат также в виде массива цифр.

----- Решение ----- Необходимо пройтись по массиву, начиная с конца. Если цифра в разряде равна 9, то записать на это место 0 и продолжить цикл, иначе увеличить цифру на один и сразу вернуть результат. То есть, простое правило сложения с увеличением старшего разряда.

Если мы прошлись по всем разрядам, но так и не вышли из функции, то значит, что у нас есть еще единица “в уме” для нового старшего разряда. Записываем в начало массива 1 и возвращаем ответ.

Сложность алгоритма по времени O(n), где n - количество цифр, сложность по памяти O(1).

----- Код ----- /**  * @param {number[]} digits  * @return {number[]}  */ const plusOne = function(digits) {   for (let i = digits.length - 1; i >= 0; i–) {     if (digits[i] === 9) {       digits[i] = 0;     } else {       digits[i] += 1;       return digits;     }   }

digits.unshift(1);

return digits; };