题目如下:
Given a non-negative number represented as an array of digits, plus one to the number.
The digits are stored such that the most significant digit is at the head of the list.
整数按位存储于int数组,digits[0]存储最高位,对该整数+1操作。题目很简单,关键是各种边界的处理。
public class Solution {
public int[] plusOne(int[] digits) {
int flag=1;
for(int i=digits.length-1;i>=0;i-- ){
digits[i]=digits[i]+flag;
flag=0;
if(digits[i]>9){
digits[i]=0;
flag=1;
if(i==0){
int[] newdigits = new int[digits.length+1];
newdigits[0] = 1;
for(i=1;i<=digits.length;i++) {
newdigits[i] = digits[i-1];
}
return newdigits;
}
}
}
return digits;
}
}