数组 LC 加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
func plusOne(_ digits: [Int]) -> [Int] {
var nums = digits
// 最后一位是否是9
if nums.last == 9 {
// 如果最后一位是9,需要遍历其他位
var index = nums.count - 1
// 从最后一位开始遍历,直至遍历到元素值不是9止
while index >= 0 && nums[index] == 9 {
// 如果元素上的值是9,则将其改为0
nums[index] = 0
index -= 1
}
// 进位
if index < 0 {
nums.insert(1, at: 0)
}
else {
nums[index] += 1
}
}
// 如果最后一位是不是9,则最后一位直接+1
else {
nums[nums.count - 1] += 1
}
return nums
}