Appearance
Adding one to number represented as array of digits
Problem Description
Given a non-negative number represented as an array of digits, add 1 to the number ( increment the number represented by the digits ).
The digits are stored such that the most significant digit is at the head of the list.
Problem Constraints
1 <= |A| <= 106
0 <= Ai <= 9
Input Format
First argument is an array of digits.
Output Format
Return the array of digits after adding one.
Example Input
Input 1:
[1, 2, 3]
Example Output
Output 1:
[1, 2, 4]
Example Explanation
Explanation 1:
Given vector is [1, 2, 3].
The returned vector should be [1, 2, 4] as 123 + 1 = 124.
TIP
Certain things are intentionally left unclear in this question which you should practice asking the interviewer.
For example: for this problem, following are some good questions to ask :
- Q : Can the input have 0's before the most significant digit. Or in other words, is 0 1 2 3 a valid input? (YES)
- Q : Can the output have 0's before the most significant digit? Or in other words, is 0 1 2 4 a valid output? (NO)
Solution
TIP
Array Iteration.
swift
import Foundation
class Solution {
func plusOne(_ A: inout [Int]) -> [Int] {
let len = A.count
var result = [0] + A
var i = len
while i >= 0 {
result[i] += 1
if result[i] < 10 {
break
}
result[i] = 0
i -= 1
}
i = 0
while i <= len {
if result[i] > 0 {
break
}
i += 1
}
return Array(result[i...len])
}
}