C/C++解OJ题——加一(题目看不懂系列)


一.原题如下
在这里插入图片描述
二.示例如下
在这里插入图片描述
  题目真的很难理解,我反复看了几遍都看不懂,最终去看了别人的解读才明白。
  主要是这几个信息:第一点,数组中的元素只会以自然数的形式存在,即最大只能是9。第二点,9只会存在于数组最后,如果有多个将依次从后面进行排列。
  所以数组中的数据只会存在三种情况:情况一:不存在自然数9。
在这里插入图片描述
  对于上述情况只需要将最后一个元素加1,返回原数组即可。

  情况二:部分是自然数9。
在这里插入图片描述
  对于这种情况,将所有是9的数组元素变为0,将最后一个不是9数组元素加1,返回原始数组即可。
  情况三:全部都是自然数9。
在这里插入图片描述

  对于这种情况,开辟新数组,数组大小比原始数组大1,同时将第一个数组元素设置为1,其余设置为0即可。


三.代码实现

//C实现
int* plusOne(int* digits, int 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值