一.原题如下
二.示例如下
题目真的很难理解,我反复看了几遍都看不懂,最终去看了别人的解读才明白。
主要是这几个信息:第一点,数组中的元素只会以自然数的形式存在,即最大只能是9。第二点,9只会存在于数组最后,如果有多个将依次从后面进行排列。
所以数组中的数据只会存在三种情况:情况一:不存在自然数9。
对于上述情况只需要将最后一个元素加1,返回原数组即可。
情况二:部分是自然数9。
对于这种情况,将所有是9的数组元素变为0,将最后一个不是9数组元素加1,返回原始数组即可。
情况三:全部都是自然数9。
对于这种情况,开辟新数组,数组大小比原始数组大1,同时将第一个数组元素设置为1,其余设置为0即可。
三.代码实现
//C实现
int* plusOne(int* digits,