LeetCode 66: Plus One — Step-by-Step Visual Trace


Easy — Array | Math | Simulation

The Problem

Given a non-empty array of decimal digits representing a non-negative integer, increment the integer by one and return the resulting digits as an array.

Approach

Iterate through the digits array from right to left (least to most significant digit). If a digit is less than 9, increment it and return immediately. If it’s 9, set it to 0 and continue. If all digits were 9, prepend a 1 to handle the overflow case.

Time: O(n) · Space: O(1)

Code

class Solution:
    def plusOne(self, digits: List[int]) -> List[int]:
        n = len(digits)

        for i in range(n - 1, -1, -1):
            if digits[i] < 9:
                digits[i] += 1
                return digits
            digits[i] = 0

        return [1] + digits

Watch It Run

Try it yourself: Open TraceLit and step through every line.


Built with TraceLit — the visual algorithm tracer for LeetCode practice.


Comments