原题链接:https://leetcode-cn.com/problems/plus-one/
解题思路:
- 倒序遍历当前数组,对当前位加1。
- 如果当前位之和为10,设置当前位为0,下一位继续加1操作。
- 如果当前位之和小于10,后续位数不需要操作,直接退出循环。
- 如果正常完成循环,表示最后一位之和为10,则需要在digits第一位之前增加一位为1。
/**
* @param {number[]} digits
* @return {number[]}
*/
var plusOne = function (digits) {
// 倒序遍历数组
for (let i = digits.length - 1; i >= 0; i--) {
// 对当前位进行加1操作,如果结果为10,则表示需要进位,需要把当前位置为0
if (++digits[i] >= 10) {
digits[i] = 0;
} else {
// 如果当前不需要进位,则之后的位数也不需要继续操作,直接返回结果
return digits;
}
}
return [1, ...digits];
};