Guest User

Untitled

a guest
Nov 18th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. public class PlusOne {
  2. /*
  3. create a int variable to record how much the previous bit overflow
  4. iterate the array from the last element, move forward
  5. stop until no overflow
  6. */
  7. public int[] plusOne(int[] digits) {
  8. if(digits.length==0)
  9. return new int[]{1};
  10. int sign = 1;
  11. int overflow = 0;
  12. digits[digits.length-1] += 1;
  13. overflow = digits[digits.length-1]/10;
  14. digits[digits.length-1] %= 10;
  15. for(int i=digits.length-2; i>=0&&overflow>0; i--){
  16. digits[i] += overflow;
  17. overflow = digits[i]/10;
  18. digits[i] %= 10;
  19. }
  20. if(overflow>0){
  21. int[] newDigits = new int[digits.length+1];
  22. newDigits[0] = overflow;
  23. for(int i=0; i<digits.length; i++){
  24. newDigits[i+1] = digits[i];
  25. }
  26. return newDigits;
  27. }
  28. return digits;
  29. }
  30. }
Add Comment
Please, Sign In to add comment