题目描述
Given a number represented as an array of digits, plus one to the number.
- 思路
求数组表示的大整数加一的结果,仍用数组形式返回。
模拟或直接调用库函数
public class Solution {
public int[] plusOne(int[] digits) {
if(digits == null)
return digits;
for(int i=digits.length-1; i>=0; i--){
if(digits[i] != 9){
digits[i] ++;
break;
}else{
digits[i] = 0;
}
}
if(digits[0] == 0){
int[] temp = new int[digits.length + 1];
temp[0] = 1;
return temp;
}
return digits;
}
}
import java.math.BigDecimal;
public class Solution {
public int[] plusOne(int[] digits) {
if(digits == null)
return digits;
String str = "";
for(int i=0; i<digits.length; i++){
str += String.valueOf(digits[i]);
}
str = new BigDecimal(str).add(BigDecimal.valueOf(1)).toString();
digits = new int[str.length()];
for(int i=0; i<str.length(); i++){
digits[i] = str.charAt(i) - '0';
}
return digits;
}
}