給定非負整數數組 digits 表示一個整數(最高位在前),對該整數加一,返回新數組。
範例: [1,2,3] → [1,2,4];[9,9] → [1,0,0]
從最後一位開始加 1,處理進位。若最高位處理完仍有進位,在數組頭部插入 1。
class Solution {
public:
vector plusOne(vector& digits) {
int carry = 1;
for (int i = digits.size() - 1; i >= 0 && carry; --i) {
int sum = digits[i] + carry;
digits[i] = sum % 10;
carry = sum / 10;
}
if (carry) digits.insert(digits.begin(), 1);
return digits;
}
};
直接在原數組上修改,代碼簡潔高效。