问题描述
Given a number represented as an array of digits, plus one to the number.
问题分析
这道题目的意思蛮难理解的,大概的意思是digits数组{1,2,3,4},组成一个数1234,把这个数+1=1235用数组返回1235结果,若结果位数变多,那么直接溢出。
这题主要是要处理好进位的问题。
代码实现
public int[] plusOne(int[] digits) {
int length = digits.length;
digits[length - 1]++;
for (int i = length - 1; i >= 1 && digits[i] >= 10; i--) {
digits[i - 1]++;
digits[i] = 0;
}
if (digits[0] < 10) return digits;
int[] newDigits = new int[length + 1];
newDigits[0] = 1;
return newDigits;
}
网友评论