给定一个用数组表示的数字,即数组中每个数表示一个数位上的数,例如 [1,2,3],表示 123 ,请问给这个数字加一后得到的结果(结果同样以数组的形式返回)。
注意:数组中不可能出现负数,且保证数组的首位即数字的首位不可能是 0 。
数据范围: 数组长度满足
,数组中每个数满足 
[1,2,3]
[1,2,4]
[1,9]
[2,0]
[9]
[1,0]
public int[] plusOne (int[] nums) {
int i=nums.length-1;
while(i>=0){
if(nums[i]==9){
nums[i]=0;
i--;
}else{
nums[i]++;
break;
}
}
int[] n=new int[nums.length+1];
if(nums[0]==0){
n[0]=1;
for(int j=1;j<nums.length+1;j++){
n[j]=nums[j-1];
}
return n;
}
return nums;
} import java.util.*;
public class Solution {
public int[] plusOne (int[] nums) {
ArrayList<Integer> list = new ArrayList<>();
int carry = 0, idx = nums.length-1, sum = 0;
while (idx >= 0) {
sum = 0;
if (idx == nums.length-1) sum += 1;
sum += nums[idx--] + carry;
carry = sum / 10;
list.add(sum % 10);
}
if (carry > 0) list.add(carry);
int[] res = new int[list.size()];
for (int i = list.size()-1; i >= 0; i--) {
res[list.size()-i-1] = list.get(i);
}
return res;
}
} public int[] plusOne (int[] nums) {
int val=1;
int[] arr=new int[nums.length+1];
for(int i=nums.length-1;i>=0;i--) {
int tmp=nums[i]+val;
arr[i+1]=tmp%10;
val=tmp/10;
}
if(val==1) {
arr[0]=1;
return arr;
}else {
return Arrays.copyOfRange(arr, 1, arr.length);
}
} import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型一维数组
* @return int整型一维数组
*/
public int[] plusOne (int[] nums) {
// write code here
LinkedList<Integer> list = new LinkedList<>();
int carry = 0;
for(int i = nums.length - 1; i >= 0; i--){
int sum = carry + (i == nums.length - 1? 1: 0) + nums[i];
list.add(sum % 10);
carry = sum / 10;
}
if(carry > 0) list.add(carry);
int[] res = new int[list.size()];
int p = 0;
while(!list.isEmpty()){
res[p++] = list.removeLast();
}
return res;
}
}