给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。
该数字按照大小进行排列,最大的数在列表的最前面。
样例
给定 [1,2,3]
表示 123, 返回 [1,2,4]
.
给定 [9,9,9]
表示 999, 返回 [1,0,0,0]
.
public class Solution {
/*
* @param digits: a number represented as an array of digits
* @return: the result
*/
public int[] plusOne(int[] digits) {
// write your code here
int carry = 1;
for (int i = digits.length - 1; i >= 0; --i) {
int cur = digits[i] + carry;
if (cur > 9) {
digits[i] = cur - 10;
carry = 1;
} else {
digits[i] = cur;
carry = 0;
}
}
if (carry == 1) {
int[] re = new int[digits.length + 1];
re[0] = 1;
for (int i = 1; i <= digits.length; ++i)
re[i] = digits[i - 1];
return re;
} else
return digits;
}
}