66. 加一

  1. class Solution {
  2. public int[] plusOne(int[] digits) {
  3. List<Integer> list = new ArrayList<>();
  4. int flag = 0;
  5. for (int i = digits.length - 1; i>= 0; i--) {
  6. int curNumber = 0;
  7. if (i == digits.length - 1) {
  8. curNumber = (digits[i] + flag + 1) % 10;
  9. flag = (digits[i] + flag + 1) / 10;
  10. } else {
  11. curNumber = (digits[i] + flag) % 10;
  12. flag = (digits[i] + flag) / 10;
  13. }
  14. list.add(curNumber);
  15. }
  16. if (flag == 1) {
  17. list.add(1);
  18. }
  19. int size = list.size();
  20. int[] ans = new int[size];
  21. int index = size - 1;
  22. for (Integer num : list) {
  23. ans[index] = num;
  24. --index;
  25. }
  26. return ans;
  27. }
  28. }