给定一个整数数组‘num’return 该数组递增 1
Given an array of integers ‘num’ return the array incremented by 1
给定一个整数数组,return 一个新数组,其原始值增加 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]));
有点晚了,但这是一个递归版本,如果参数是 [9,9,9,9]
.
,则同样的边缘情况问题
function increment(array, index = NaN) {
if (isNaN(index)) {
index = array.length - 1;
}
if (++array[index] % 10 === 0) {
array[index] = 0;
increment(array, --index);
}
return array;
}
console.log(increment([1,2,7,9]))
console.log(increment([9,9,9,9]))
给定一个整数数组,return 一个新数组,其原始值增加 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]));
有点晚了,但这是一个递归版本,如果参数是 [9,9,9,9]
.
function increment(array, index = NaN) {
if (isNaN(index)) {
index = array.length - 1;
}
if (++array[index] % 10 === 0) {
array[index] = 0;
increment(array, --index);
}
return array;
}
console.log(increment([1,2,7,9]))
console.log(increment([9,9,9,9]))