题目
给定一个数组表示的 大整数
,数组中的每个元素表示第 i 位。数字按从左到右的顺序按最高有效位和最低有效位排序。并且不包含任何前导0。
将这个数组+1并返回。
解析
这个数组大概率是不会扩容的,只有一种扩容的情况就是全为 9。
伪代码
flag:=1
for i>=0 && flag != 1
rst:=digits[i]+1
flag = rst/10
digits[i] =rst%10
if flag == 1
digits = append(1, digits...)
return digits
for
代码
func plusOne(digits []int) []int {
flag:=1
for i:=len(digits)-1; i>=0 && flag==1; i-- {
rst:=digits[i]+1
flag=rst/10
digits[i]=rst%10
}
if flag == 1 {
digits = append([]int{1}, digits...)
}
return digits
}
image.png
后记
- go 语法如此规范,数字只能判断相等,不能用来代替 bool
- append 函数相当实用
网友评论