给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。
时间: 2023-04-28 17:05:10 浏览: 125
题目描述:给定一个由整数组成的非空数组所表示的非负整数,将该数加一。最高位数字存放在数组的首位,数组中每个元素只存储单个数字。你可以假设除了整数0之外,这个整数不会以零开头。
解题思路:从数组的最后一位开始遍历,如果当前位小于9,则直接加1并返回数组;如果当前位等于9,则将当前位变为0,继续遍历前一位,直到找到一个不为9的数字,将其加1并返回数组;如果遍历完整个数组,仍然没有返回,则说明原数组的每一位都为9,需要在数组的最前面添加一个1。
代码如下:
相关问题
js给定一个由整数组成的非空数组所表示的非负整数在该数的基础上加一用digits
你想要一个使用 `digits` 参数的函数来实现给定数组加一的操作,可以使用以下方法:
```javascript
function plusOne(digits) {
let carry = 1; // 进位初始为 1
for (let i = digits.length - 1; i >= 0; i--) {
digits[i] += carry; // 当前位加上进位
if (digits[i] < 10) {
// 没有进位,直接返回结果
carry = 0;
break;
} else {
// 有进位,当前位取个位数,进位继续往下一位
digits[i] %= 10;
carry = 1;
}
}
if (carry === 1) {
// 最高位有进位,需在数组最前面加一位
digits.unshift(1);
}
return digits;
}
// 示例用法
const arr = [1, 2, 3];
const result = plusOne(arr); // [1, 2, 4]
console.log(result);
```
这个函数将 `digits` 数组作为参数传入,并按照之前的逻辑进行加一操作。最后返回加一后的结果数组。请注意,此函数会修改原始数组 `digits`,如果不希望修改原数组,可以在函数内部创建一个新的数组进行操作。
js给定一个由整数组成的非空数组所表示的非负整数在该数的基础上加一输出用digits
你可以使用以下代码来实现给定的要求:
```javascript
function plusOne(digits) {
for (let i = digits.length - 1; i >= 0; i--) {
if (digits[i] !== 9) {
// 如果当前位不是9,直接加一返回结果
digits[i]++;
return digits;
} else {
// 如果当前位是9,置为0并继续向前进位
digits[i] = 0;
}
}
// 如果整个数组都是9,需要在最高位前面加一位1
digits.unshift(1);
return digits;
}
// 示例用法
const arr = [1, 2, 3];
const result = plusOne(arr); // [1, 2, 4]
console.log(result);
```
这个函数将 `digits` 数组作为参数传入,并从数组的最后一位开始向前遍历。如果当前位不是9,直接加一并返回结果。如果当前位是9,将其置为0并继续向前进位。当整个数组都是9时,在最高位前面加一位1。最后返回加一后的结果数组。
请注意,此函数会修改原始数组 `digits`。如果不希望修改原数组,可以在函数内部创建一个新的数组进行操作。
阅读全文