乐趣区

66. Plus One

Given a non-empty array of digits representing a non-negative integer, plus one to the integer.
The digits are stored such that the most significant digit is at the head of the list, and each element in the array contain a single digit.
You may assume the integer does not contain any leading zero, except the number 0 itself.
Example 1:
Input: [1,2,3]
Output: [1,2,4]
Explanation: The array represents the integer 123.

Example 2:
Input: [4,3,2,1]
Output: [4,3,2,2]
Explanation: The array represents the integer 4321.

难度:easy
题目:给定一个由单个数字组成的非空数组来表示一个整数,为这个整数加上 1. 数字的存储方式使得最有效数字位于列表的开头,数组中的每个元素都包含一个数字。假定数组组成的整数不以 0 开头,除了数字 0 本身。
思路:找出第一个非 9 的数字加 1 返回。如果为 9 置 0 继续。
Runtime: 0 ms, faster than 100.00% of Java online submissions for Plus One.Memory Usage: 26.4 MB, less than 42.73% of Java online submissions for Plus One.
class Solution {
public int[] plusOne(int[] digits) {
for (int i = digits.length – 1; i >= 0; i–) {
if (digits[i] < 9) {
digits[i] += 1;
return digits;
} else {
digits[i] = 0;
}
}

if (0 == digits[0]) {
int[] result = new int[digits.length + 1];
result[0] = 1;
for (int i = 0; i < digits.length; i++) {
result[i + 1] = digits[i];
}

return result;
}

return new int[0];
}
}

退出移动版