diff options
Diffstat (limited to 'c/0066')
| -rw-r--r-- | c/0066/main.c | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/c/0066/main.c b/c/0066/main.c deleted file mode 100644 index b01eb8b..0000000 --- a/c/0066/main.c +++ /dev/null @@ -1,38 +0,0 @@ -#include <stdlib.h> - -// begin - -/** - * Note: The returned array must be malloced, assume caller calls free(). - */ -int* plusOne(int* digits, int digitsSize, int* returnSize) { - int *buffer = malloc((digitsSize + 1) * sizeof(int)); - for (int i = 0; i < digitsSize; i++) { - buffer[i] = digits[digitsSize - 1 - i]; - } - buffer[0]++; - int carry = 0; - for (int i = 0; i < digitsSize; i++) { - int val = buffer[i] + carry; - carry = val / 10; - buffer[i] = val % 10; - } - int len = digitsSize; - if (carry) { - len++; - buffer[digitsSize] = 1; - } - int lp = 0, rp = len - 1; - while (lp <= rp) { - int t = buffer[lp]; - buffer[lp] = buffer[rp]; - buffer[rp] = t; - lp++; - rp--; - } - *returnSize = len; - return buffer; -} - -// end - |
