LeetCode Problem

How to Solve Plus One

The problem asks to increment a number represented by an array of digits by one. Starting from the least significant digit, propagate any carry and update the array. Ensure the array represents the correct number after the operation.

GhostInterview Help

Need help with Plus One without spending extra time grinding it?

GhostInterview can read Plus One from a screenshot, generate the answer path, explain the complexity, and support solver-first interview workflows when you need direct help fast.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.

Problem #66Array plus MathReviewed 2026-03-08
Difficulty
Easy
Primary pattern
Array plus Math
Topics
Answer-first problem summary
Step-by-step approach and complexity
GhostInterview solver workflow

The problem asks to increment a number represented by an array of digits by one. Starting from the least significant digit, propagate any carry and update the array. Ensure the array represents the correct number after the operation.

Problem Statement

You are given an array digits representing a large integer. The array contains digits of the number from most significant to least significant in left-to-right order. The integer does not contain leading zeros.

Your task is to increment the number by one and return the resulting array of digits. Handle any carry-over during the addition.

Examples

Example 1

Input: digits = [1,2,3]

Output: [1,2,4]

The array represents the integer 123. Incrementing by one gives 123 + 1 = 124. Thus, the result should be [1,2,4].

Example 2

Input: digits = [4,3,2,1]

Output: [4,3,2,2]

The array represents the integer 4321. Incrementing by one gives 4321 + 1 = 4322. Thus, the result should be [4,3,2,2].

Example 3

Input: digits = [9]

Output: [1,0]

The array represents the integer 9. Incrementing by one gives 9 + 1 = 10. Thus, the result should be [1,0].

Constraints

  • 1 <= digits.length <= 100
  • 0 <= digits[i] <= 9
  • digits does not contain any leading 0's.

Solution Approach

Iterative Approach

Starting from the least significant digit, add one to it and check for any carry. If there is a carry, propagate it to the next digit until no carry is left. If the most significant digit has a carry, add a new digit at the beginning of the array.

In-place Modification

Modify the array in-place by updating the digits starting from the least significant digit. This approach avoids the need for additional space and can be faster for larger arrays.

Edge Case Handling

Consider edge cases such as when the number is a single-digit 9, which results in a carry and changes the array size, or when the number has a carry at multiple positions (e.g., 999 becomes 1000).

Complexity Analysis

MetricValue
TimeDepends on the final approach
SpaceDepends on the final approach

Time complexity is O(n) where n is the length of the digits array, as we may need to traverse the entire array in the worst case. Space complexity is O(1) if modified in-place, or O(n) if a new array is created.

What Interviewers Usually Probe

  • Can the candidate handle the carry and array resizing efficiently?
  • Does the candidate consider all edge cases, including the case of multiple carries?
  • How well does the candidate optimize the solution in terms of space and time complexity?

Common Pitfalls or Variants

Common pitfalls

  • Forgetting to handle carry-over when incrementing digits.
  • Not properly adjusting the array length when a carry overflows the most significant digit.
  • Overcomplicating the solution by using extra data structures unnecessarily.

Follow-up variants

  • What if the array represents a negative number? Adjust the approach accordingly.
  • How would the solution change if the number represented more than one digit per element (e.g., two-digit numbers per array element)?
  • How do you handle cases where the array is empty?

How GhostInterview Helps

  • GhostInterview provides a structured walkthrough of the solution, helping candidates implement the array plus math pattern effectively.
  • Candidates can practice optimizing for time and space complexities, ensuring they handle carry efficiently without wasting resources.
  • GhostInterview's hints guide candidates through common pitfalls, ensuring that edge cases like carry-overs are addressed.

Topic Pages

FAQ

What is the pattern used in the Plus One problem?

The Plus One problem follows the 'array plus math' pattern, focusing on iterating through an array and applying basic arithmetic operations to manage carries and updates.

How should edge cases like a number ending in 9 be handled?

Edge cases like numbers ending in 9 should be handled by propagating the carry and resizing the array if necessary, e.g., 999 becomes 1000.

Is there a way to solve this problem in constant space?

Yes, solving the problem in-place with careful manipulation of the array ensures constant space complexity.

Can this problem be solved with recursion?

While recursion can be applied, an iterative solution is generally more efficient in terms of both time and space.

What is the time complexity of this problem?

The time complexity is O(n), where n is the length of the digits array, because we may need to iterate over the entire array to propagate carries.

GhostInterview Solver

Need direct help with Plus One instead of spending more time grinding it?

Download GhostInterview when you want a LeetCode solver, not another long practice loop. Capture Plus One from a screenshot, get the answer path and complexity, and use supported stealth workflows that stay outside captured layers.

Screenshot Input

Capture the prompt fast instead of rewriting the problem by hand.

Answer + Complexity

Get the solution path, trade-offs, and complexity summary in one pass.

Stealth Workflow

Stay outside captured layers on supported screen-share workflows.