mirror of
https://github.com/TheAlgorithms/C
synced 2025-04-22 21:43:08 +03:00
28 lines
639 B
C
28 lines
639 B
C
/**
|
|
* Note: The returned array must be malloced, assume caller calls free().
|
|
*/
|
|
int *plusOne(int *digits, int digitsSize, int *returnSize)
|
|
{
|
|
for (int i = digitsSize - 1; i >= 0; i--)
|
|
{
|
|
if (digits[i] < 9)
|
|
{
|
|
digits[i]++;
|
|
*returnSize = digitsSize;
|
|
return digits;
|
|
}
|
|
else
|
|
{
|
|
digits[i] = 0;
|
|
}
|
|
}
|
|
|
|
int *newdigit = (int *)malloc((digitsSize + 1) * sizeof(int));
|
|
newdigit[0] = 1;
|
|
for (int i = 1; i < (digitsSize + 1); i++)
|
|
{
|
|
newdigit[i] = digits[i - 1];
|
|
}
|
|
*returnSize = digitsSize + 1;
|
|
return newdigit;
|
|
} |