Fork me on GitHub

Plus One

题目介绍

LeetCode 66. Plus One,题目的意思给定一个非负数组表示一个数字,从高位向低位排,加一之后输出结果。

解题思路

先把数组反向然后遍历,如果是 index == 0 就加一,记录下进位值 carry = sum / 10 和加一后的当前数字 reDigits[index] = sum % 10

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
func plusOne(_ digits: [Int]) -> [Int] {
var reDigits: [Int] = digits.reversed()
var carry = 0
for (index, digit) in reDigits.enumerated() {
let sum = index == 0 ? digit + 1 + carry : digit + carry
carry = sum / 10
reDigits[index] = sum % 10
}
if carry > 0 {
reDigits.append(carry)
}
return reDigits.reversed()
}
}

版权声明



Ivan’s Blog by Ivan Ye is licensed under a Creative Commons BY-NC-ND 4.0 International License.
叶帆创作并维护的叶帆的博客博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证

本文首发于Ivan’s Blog | 叶帆的博客博客( http://yeziahehe.com ),版权所有,侵权必究。

本文链接:http://yeziahehe.com/2017/11/07/PlusOne/