66. Plus One
給定一個由整數數組 digits 表示的大整數,其中 digits[i] 是該整數的第 i 位數字。數字按從最高有效位到最低有效位的順序排列,且大整數不包含任何前導 0。
將大整數加一,並返回結果數組。
範例 1:
輸入:digits = [1,2,3] 輸出:[1,2,4] 解釋:數組表示整數 123。 加一後得到 123 + 1 = 124。 因此,結果應為 [1,2,4]。
Python
from typing import List
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
n = len(digits)
# Traverse the digits array from the end
for i in range(n-1, -1, -1):
if digits[i] < 9:
digits[i] += 1
return digits
digits[i] = 0
# If all digits are 9
return [1] + digits
16.4MB, 29ms
C++
#include <vector>
using namespace std;
class Solution {
public:
vector<int> plusOne(vector<int>& digits) {
int n = digits.size();
// Traverse the digits array from the end
for (int i = n - 1; i >= 0; --i) {
if (digits[i] < 9) {
digits[i] += 1;
return digits;
}
digits[i] = 0;
}
// If all digits are 9
vector<int> result(n + 1, 0);
result[0] = 1;
return result;
}
};
10.16MB, 2ms
Javascript
/**
* @param {number[]} digits
* @return {number[]}
*/
var plusOne = function(digits) {
let n = digits.length;
// Traverse the digits array from the end
for (let i = n - 1; i >= 0; i--) {
if (digits[i] < 9) {
digits[i] += 1;
return digits;
}
digits[i] = 0;
}
// If all digits are 9
digits.unshift(1);
return digits;
};
48.78MB, 44ms