力扣66 加一
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] += 1
return digits
digits[i] = 0
# 如果所有位都是9,需要增加一位,例如 999 -> 1000
return [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;
}