本文主要是介绍C语言 | Leetcode C语言题解之第66题加一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目:
题解:
/*** 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){digits[i] = digits[i] + 1;//最后元素+1判断是不是10//如果当前元素不为10,直接返回数组if(digits[i] != 10){*returnSize = digitsSize;return digits;}//第一个元素不为10,后面元素均为10的情况if(digits[i] == 10)digits[i] = 0;}//元素全为9开辟新数组int* ans = malloc(sizeof(int) * (digitsSize + 1));memset(ans, 0, sizeof(int) * (digitsSize + 1));//全部置0ans[0] = 1;*returnSize = digitsSize + 1;return ans;
}
这篇关于C语言 | Leetcode C语言题解之第66题加一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!