int* plusOne(int* digits, int digitsSize, int* returnSize)
{
int* p = (int*)calloc(digitsSize + 1, sizeof(int));
int flag = 0;
*returnSize = digitsSize;
for (int i = 0; i < digitsSize;i++ )
{
p[i] = digits[i];
}
if (p[digitsSize - 1] == 9)
flag = 1;
for (int j = digitsSize - 1; j >= 0; j--)
{
if (p[j] == 9 && flag == 1)
{
p[j] = 0;
flag = 1;
}
else if (p[j] != 9 && flag == 1)
{
p[j] = p[j] + 1;
flag = 0;
}
else if(p[j]!=9&&j==digitsSize-1)
{
p[j]=p[j]+1;
flag=0;
}
else
{
flag = 0;
}
}
if (p[0] == 0)
{
for (int k = digitsSize; k < 0; k--)
{
p[k] = p[k - 1];
}
p[0] = 1;
*returnSize = digitsSize + 1;
}
return p;
}