给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
解答:
var plusOne = function(digits) {
// var a = digits.join(‘’);
// var b = Number(a) + 1
// var c = String(b);
// var d = c.split(‘’);
// return d
// js最大安全数值(2^53 - 1),会报错
let n = 1<br /> digits = digits.reverse()<br /> for (let i = 0;i<digits.length;i++) {<br /> if (n>0) {<br /> digits[i] += n<br /> if (digits[i]>=10) {<br /> if (i == digits.length-1) {<br /> digits[i+1] = 0<br /> }<br /> n=1<br /> digits[i] -= 10<br /> } else {<br /> n=0<br /> }<br /> }<br /> }<br /> return digits.reverse()<br />};
//参考leetcode上的解法--从后往前进位
var plusOne = function(arr) {
let len = arr.length;
for(let i = len - 1; i >= 0; i --) {
arr[i] ++;
arr[i] %= 10;
if(arr[i] != 0) {
return arr;
}
}
arr = [...Array(len + 1).map(_=>0)];
arr[0] = 1;
//或者直接使用arr.unshift(1); --最后的进位
return arr;
}
