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.
给你一个非负数的整形数组,加一得到一个新的数组。考虑进位,考虑999的情况。
package leetcode;
import java.util.Arrays;
public class PlusOne {
public int[] plusOne(int[] digits) {
int count = 1;
for (int i = digits.length - 1; i >= 0; i--){
if (count == 1){
digits[i] += count;
}
if (digits[i] == 10){
count = 1;
digits[i] = 0;
}else{
count = 0;
}
}
if (digits[0] == 0) {
int[] newDigits = new int[digits.length+1];
newDigits[0] = 1;
for (int i = 1; i<newDigits.length; i++){
newDigits[i] = 0;
}
//System.out.println(newDigits.length);
return newDigits;
}
return digits;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] digits = {0};
for (int i = 0; i<digits.length; i++){
System.out.print(digits[i] + " ");
}
System.out.println();
int[] newDigits = new PlusOne().plusOne(digits);
for (int i = 0; i<newDigits.length; i++){
System.out.print(newDigits[i] + " ");
}
}
}