最后更新于1年前
这有帮助吗?
题目链接:
从最后一个元素开始,依次向前遍历,对于每个元素,如果其小于 9,则将其加一并返回 digits 数组
9
digits
否则,将其置为 0,继续向前遍历。如果遍历完整个数组后仍未返回,则说明需要在数组的最前面添加一个元素 1,表示进位
0
1
func plusOne(digits []int) []int { for i := len(digits) - 1; i >= 0; i-- { if digits[i] < 9 { digits[i]++ return digits } digits[i] = 0 } return append([]int{1}, digits...) }
时间复杂度: 时间复杂度是 O(n)O(n)O(n),其中 nnn 是数组 digits 的长度。在函数中,需要遍历数组 digits,对于每个元素,需要执行一次比较和一次赋值操作
空间复杂度: 空间复杂度是 O(1)O(1)O(1),函数只使用了常数个变量来存储中间结果,没有使用额外的空间