LeetCode 66. Plus One
You are given a large integer represented as an integer array digits, where each digits[i]
is the ith digit of the integer. The digits are ordered from most significant to least significant in left-to-right order. The large integer does not contain any leading 0’s.
Increment the large integer by one and return the resulting array of digits.
Example 1:
Input: digits = [1,2,3]
Output: [1,2,4]
Explanation: The array represents the integer 123.
Incrementing by one gives 123 + 1 = 124.
Thus, the result should be [1,2,4].
method
设置进位为1,每次更新进位,如果进位为0,就可以直接返回
vector<int> plusOne(vector<int>& digits) {
int carry = 1;
for (int i = digits.size() - 1; i >= 0; i--) {
if (carry == 0) return digits;
int sum = digits[i] + carry;
digits[i] = sum % 10;
carry = sum / 10;
}
if (carry) { // 需要增加一位
digits.push_back(0);
digits[0] = 1;
}
return digits;
}