深色模式
66. 加一
题目参考: 66. 加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
示例 2:
输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。
示例 3:
输入:digits = [9]
输出:[1,0]
解释:输入数组表示数字 9。
加 1 得到了 9 + 1 = 10。
因此,结果应该是 [1,0]
题解
Js 代码
js
/**
* @param {number[]} digits
* @return {number[]}
*/
var plusOne = function (digits) {
var len = digits.length;
var j = len - 1;
digits[j] += 1;
while (j > 0) {
if (digits[j] > 9) {
digits[j - 1] += 1;
digits[j] = 0;
}
j--;
}
if (digits[0] > 9) {
digits[0] = 0;
digits.unshift(1);
}
return digits;
};
Python代码
py
class Solution:
def plusOne(self, digits):
length = len(digits)
digits[length -1] += 1
for i in range(length):
index = length -1 - i
# digits[index] += 1
original = digits[index]
digits[index] = digits[index] % 10
if original != digits[index]:
if index != 0:
digits[index -1] += 1
else:
digits.insert(0, 1)
print(digits)
return digits