Plus One

https://leetcode.com/problems/plus-one/description/

思路

  1. 反向循环,当发现i <9, 则直接+1返回
  2. 进位+1
  3. 当循环一直没有返回,则表示这个array都是9,那么就要把array长度+1,第一个值为1,后面全部为0。

遇到的问题

  1. 当array 为[8,9]时,case无法通过
    原因,当时判断没有进位时,返回array,但是当i=0时,循环已经结束,所有假如if else方式判断进位jump <=0, 就会出现没有机会再次判断jump <=0;
    解决方案是用两个if,一个判断jump >0; 一个判断jump 《=0

  2. 用jump判断进位是多余的,代码复杂了些(虽然算法复杂度一样)
    假如使用i<9 就+1 返回,那么意味着如果没有返回时,就一定会有进位。

java 语言上犯过的错误

  1. java array的初始化,如何初始化一个新array为1,0,0,0,0
    错误:自己以为需要初始化为全0需要把每个元素都赋值一次,结果发现,只需要给第一元素赋值,那么后面所有的都默认会是0

你可能感兴趣的:(Plus One)