加一

给定一个非负数,表示一个数字数组,在该数的基础上+1,返回一个新的数组。

该数字按照大小进行排列,最大的数在列表的最前面。

样例

给定 [1,2,3] 表示 123, 返回 [1,2,4].

给定 [9,9,9] 表示 999, 返回 [1,0,0,0].

 1 public class Solution {
 2     /**
 3      * @param digits a number represented as an array of digits
 4      * @return the result
 5      */
 6     public int[] plusOne(int[] digits) {
 7         // Write your code here
 8 
 9         long sum = 0;
10         for (int i = 0; i < digits.length; i++)
11         {
12             sum = sum * 10 + digits[i];
13         }
14         sum++;
15         List<Long> list = new ArrayList<>();
16         int count = 0;
17         while (sum > 0)
18         {
19             list.add(sum % 10);
20             sum /= 10;
21             count++;
22         }
23         int[] temp = new int[count];
24 
25         for (int i = 0; i < temp.length; i++)
26         {
27             temp[i] = Integer.parseInt(String.valueOf(list.get(temp.length - 1 - i)));
28         }
29         return temp;
30     }
31 }

 

posted @ 2017-06-14 09:38  一行代码的事  阅读(156)  评论(0编辑  收藏  举报