Plus One
Array, Iterative Approach
You are given a large integer represented as an integer array digits
, where each digits[i]
is the i'th digit of the integer. The digits are ordered from most significant to least significant in left-to-right order. The large integer does not contain any leading 0's.
Increment the large integer by one and return the resulting array of digits.
Example 1:
Example 2:
Example 3:
Constraints:
1 <= digits.length <= 100
0 <= digits[i] <= 9
digits does not contain any leading 0's.
Solutions
The algorithm works by iterating over the array of digits from right to left, which corresponds to moving from the least significant digit to the most significant. It checks each digit to see if it's less than 9.
If it is, the algorithm simply increments the digit by 1 and immediately returns the result, as no further changes are needed.
If the digit is 9, it means we need to carry over the increment to the next digit. So, the algorithm sets the current digit to 0 and continues to the next digit.
If all the digits in the array are 9, it means we need an extra digit for the carry over. In this case, the algorithm adds a 1 at the beginning of the array.
Steps
Run loop from end of array.
Increment current last number by one and check if it is not equal to
10
.If it is false then, return current incremented array.
if incremented number is
10
then set it value to0
.Continue till condition evaluated false.
Create new array of length one plus of original array.
Set first element value
1
reset keep0
as default and return new array.
Complexity
Time complexity: O(n)
Space complexity: O(n)
Last updated