输入:digits = [1,2,3] 输出:[1,2,4] 解释:输入数组表示数字 123。
输入:digits = [4,3,2,1] 输出:[4,3,2,2] 解释:输入数组表示数字 4321。
输入:digits = [0] 输出:[1]思路分析
此题我是由末尾数字去出发,如果末位数字小于9,直接末位数字加1然后返回数组即可。然后如果遇到末位数字是9则需要进位,并且返回的数组长度要增加。我和一般的题解办法不同,对于等于9的情况我则是将数组转为StringBuilder类型,然后转换BigInteger避免进行加以后出现数据溢出的情况,在将BigInteger转为String,通过new一个数组去存储然后返回即可。此方法牺牲了空间换取了时间
代码展示import java.math.BigInteger;
class Solution {
public int[] plusOne(int[] digits) {
if(digits[digits.length-1]<9)
{
digits[digits.length-1]=digits[digits.length-1]+1;
return digits;
}
//大数加法的处理了
else{
StringBuilder tmp=new StringBuilder();
for(int i=0;i



