Answer: Simple question. My code can be easily improved, like using less space, reducing lines. Not every interested in improving it as question is too simple. Answer from other blogs: http://www.cnblogs.com/grandyang/p/4079357.html
class Solution { public int[] plusOne(int[] digits) { if (digits == null || digits.length < 1) { return new int[0]; } int[] addOneResult = new int[digits.length + 1]; int nextLevel = 0; for (int i = addOneResult.length - 1; i >= 0; i--) { int addOneSum = 0; if (i == 0) { addOneResult[i] = nextLevel; break; } if (i == addOneResult.length - 1) { addOneSum = digits[i - 1] + 1; } else { addOneSum = digits[i - 1] + nextLevel; } nextLevel = addOneSum / 10; addOneResult[i] = addOneSum % 10; } if (nextLevel != 0) { return addOneResult; } else { int [] result = new int[digits.length]; for (int i = 0; i < digits.length; i ++) { result[i] = addOneResult[i + 1]; } return result; } } }
No comments:
Post a Comment