class Solution:def plusOne(self, digits: List[int]) -> List[int]:# 从最低位开始加一for i in range(len(digits) - 1, -1, -1):if digits[i] < 9:digits[i] += 1return digitsdigits[i] = 0# 如果所有位都是9,需要增加一位,例如 999 -> 1000return [1] + [0] * len(digits)
int* plusOne(int* digits, int digitsSize, int* returnSize) {// 初始化返回数组的大小为 digitsSize*returnSize = digitsSize;// 从最低位开始加一for (int i = digitsSize - 1; i >= 0; i--) {if (digits[i] < 9) {digits[i]++;return digits;}digits[i] = 0;}
// 如果所有位都是9,需要增加一位,例如 999 -> 1000*returnSize = digitsSize + 1;int* newDigits = (int*)malloc((*returnSize) * sizeof(int));if (newDigits == NULL) {*returnSize = 0;return NULL; // 内存分配失败,返回空指针}newDigits[0] = 1;for (int i = 1; i < *returnSize; i++) {newDigits[i] = 0;}return newDigits;
}