加一
66.加一
描述
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例
示例1
输入:[1,2,3]
输出:[1,2,4]
示例2
输入:[4,3,2,1]
输出:[4,3,2,2]
代码及其思路
思路
看到这个题目,第一反应思路:把数组转为数字,然后加1,然后再转为数组。所以有了以下代码:
1 | /** |
但是,没有通过,因为在这个数组[6,1,4,5,3,9,0,1,9,5,1,8,6,7,0,5,5,4,3]下报错啦。0.0这个数组转为数字肯定超出js最大数字的范围。
于是,要想着操作数组中的数字。比如[1,2] => [1,3];[9] => [1, 0];[1,9] => [2,0];写个循环,由后向前循环,如果最后一位小于9,直接加1,返回结果,结束循环。如果最后一位为9,则把这一位置为0,它的前一位加1,如果循环完毕,其中每一位都是9,则把它们全部置为0,手动在第一位加个1。
代码
1 | /** |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 忘忧杂货铺!
评论