题目难度: 简单
给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。
最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例 1:
1 2 3
| **输入:** [1,2,3] **输出:** [1,2,4] **解释:** 输入数组表示数字 123。
|
示例 2:
1 2 3
| **输入:** [4,3,2,1] **输出:** [4,3,2,2] **解释:** 输入数组表示数字 4321。
|
Solution
解题思路
就是大数相加的思想,将数组倒叙,加1大于9就进一位,最后的进位标志为1时,说明需要扩充数组。实现如下
Language: Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Solution { public int[] plusOne(int[] digits) { int len = digits.length; List<Integer> list = new ArrayList<Integer>(); int temp =1; for(int i=len-1;i>=0;i--){ int md = digits[i]+temp; if(md>9){ temp =1; list.add(0,md-10); }else{ temp = 0; list.add(0,md); } } if(temp ==1 ){ list.add(0,1); len ++; } int res[] = new int[len]; for(int i=0;i<list.size();i++){ res[i] = list.get(i); } return res; } }
|