加一
题目链接: https://leetcode.cn/problems/plus-one
解题思路:
从最后一个元素开始,依次向前遍历,对于每个元素,如果其小于
9
,则将其加一并返回digits
数组否则,将其置为
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...)
}
复杂度分析
时间复杂度: 时间复杂度是 ,其中 是数组
digits
的长度。在函数中,需要遍历数组digits
,对于每个元素,需要执行一次比较和一次赋值操作空间复杂度: 空间复杂度是 ,函数只使用了常数个变量来存储中间结果,没有使用额外的空间
最后更新于
这有帮助吗?