题目链接:力扣
解题思路:从后往前遍历数组,加1操作后可能会出现连续的进位,使用pre保存进位,如果pre不为0,就继续向前加上这个进位。如果digits中的所有位加完之后pre还不为0,最高位产生了进位,这个时候需要新建一个数组,数组长度位原数组长度+1,只有digits中的每一位都是9时才会出现这种情况,最高位为1,其他位为0,这时,只需要令新数的第一位为1即可(整数数组默认初始化值为0)
AC代码
class Solution {
public static int[] plusOne(int[] digits) {
int pre = 1;
for (int i = digits.length - 1; i >= 0; i--) {
int add = digits[i] + pre;
digits[i] = add % 10;
pre = add / 10;
if (pre == 0) {
return digits;
}
}
int[] result = new int[digits.length+1];
result[0] = pre;
return result;
}
}
文章来源:https://www.toymoban.com/news/detail-613005.html
文章来源地址https://www.toymoban.com/news/detail-613005.html
到了这里,关于66. 加一的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!