Given a number represented as an array of digits, plus one to the number.
public class Solution { /** * @param digits a number represented as an array of digits * @return the result */ public int[] plusOne(int[] digits) { // Write your code here for(int i=digits.length-1;i>=0;i--){ digits[i] =1+digits[i]; if(digits[i]==10) digits[i]=0; else return digits; } //don't forget over flow case int[] newdigit = new int[digits.length+1]; newdigit[0]=1; for(int i=1;i<newdigit.length;i++){ newdigit[i] = digits[i-1]; } return newdigit; } }
public class Solution { public static int[] plusOne(int[] digits) { // Start typing your Java solution below // DO NOT write main() function boolean isNines = true; for(int i=0;i<digits.length;i++) { if(digits[i]!=9){ isNines = false; break; } } if(isNines){ int[] result = new int[digits.length+1]; result[0] = 1; return result; } int[] result = digits; int p = result.length-1; int increment=1; while(p>=0 && increment>0){ int sum = digits[p]+increment; result[p] = sum%10; increment = sum/10; p--; } return result; } }