给定一个整数数组,返回一个新数组,该数组的原始值增加 1。
数组中的每个值不能超过 9,并且不能使用任何将数组转换为整数的函数。
即:
Original Array = [1,2,7,9]
Returned Array = [2,3,8,0]
@param(数组)num
@return(数组)
这就是我目前正在做的事情。只是想知道是否有任何东西会更有效。
function increment (num) {
for (var i = num.length - 1; i >= 0; i--) {
num[i]++;
if (num[i] > 9) num[i] = 0;
else break;
}
return num;
}
console.log(increment([1, 2, 7, 9]));
最佳答案
有一个问题:如果输入数组全部由 9 组成,您需要一个所需的输出,例如 [1, 0, 0, 0, 0]
(而不是 [0, 0, 0, 0]
):
function increment (num) {
for (var i = num.length - 1; i >= 0; i--) {
num[i]++;
if (num[i] > 9) {
num[i] = 0;
if (i === 0) {
// Last iteration, but we need to carry - unshift a 1:
num.unshift(1);
}
}
else break;
}
return num;
}
console.log(increment([1, 2, 7, 9]));
console.log(increment([3, 9, 9, 9]));
console.log(increment([9, 9, 9, 9]));
console.log(increment([1, 1, 1, 1]));
关于javascript - 给定一个整数数组 ‘num’ 返回该数组加 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57262488/