Plus One
題目
Input: [1,2,3]
Output: [1,2,4]
Explanation: The array represents the integer 123.Input: [4,3,2,1]
Output: [4,3,2,2]
Explanation: The array represents the integer 4321.分析
程式
複雜度
Last updated
Input: [1,2,3]
Output: [1,2,4]
Explanation: The array represents the integer 123.Input: [4,3,2,1]
Output: [4,3,2,2]
Explanation: The array represents the integer 4321.Last updated
func plusOne(_ digits: [Int]) -> [Int] {
var r = digits
var s = 0
// For loop的reversed的使用
for i in (0..<r.count).reversed() {
if (i == r.count - 1) {
s = r[i] + 1
r[i] = s % 10
s /= 10
// Edge case: 處理digits = [9]
if (r.count == 1 && s > 0) {
r.insert(s, at: 0)
}
} else {
// 商數跟餘數的取得
r[i] = (r[i] + s) % 10
s = (r[i] + s) / 10
if (i == 0 && s > 0) {
r.insert(s, at: i)
}
}
}
return r
}