这一题就有些挑战算法,用最笨的算法是可以算出来的,我写的是最笨的算法,看了别人的思路以后,才写出来这个
因为是+1操作,所以和最大是10,如果在i=0之前有任何一位不等于0,说明没有进位,这个数组的结果就是最后一个值增加1.否则,就是所有位运算完成,还有增加一个进位1,如代码
func plusOne(digits []int) []int {
for i:=len(digits)-1;i>=0;i--{
digits[i] = digits[i] + 1
digits[i] = digits[i] % 10
if digits[i] != 0{
return digits
}
}
return append([]int{1}, digits...)
}