Step-by-Step Guide to Solve Leetcode's Plus One Problem Using Python's map function.
Intuition
The problem involves adding 1
to a number represented as an array of digits. My first thought was to convert the list of digits into an integer, perform the addition, and then split the resulting number back into its digits. Using Python's map
and string manipulation makes this process straightforward and concise.
Approach
Convert Digits to String:
Use
map(str, digits)
to convert each digit in the list to a string.Use
''.join(...)
to combine the strings into a single number as a string.
Convert String to Integer and Add One:
Use
int(...)
to convert the string to an integer.Add
1
to the integer.
Convert the Result Back to Digits:
Convert the result back to a string with
str(...)
.Use
map(int, ...)
to convert each character back to an integer.Use
list(...)
to collect the integers into a list.
This approach avoids complex looping or carry-over logic, leveraging Python's powerful built-in functions.
Complexity
Time complexity:
$$O(n)$$
The operationsmap
,join
, andlist
each traverse the digits list or the resulting string once, making the overall complexity linear with respect to the number of digits.Space complexity:
$$O(n)$$
Additional space is used to store intermediate strings and the final list of digits.
Code
class Solution(object):
def plusOne(self, digits):
return list(map(int, str(int(''.join(map(str, digits))) + 1)))
Example Test Cases
Input:
[1, 2, 3]
Output:[1, 2, 4]
Explanation: The number 123 becomes 124 after adding 1.Input:
[9, 9, 9]
Output:[1, 0, 0, 0]
Explanation: The number 999 becomes 1000 after adding 1.Input:
[0]
Output:[1]
Explanation: The number 0 becomes 1 after adding 1.
Connect with Me
If you found this solution helpful, feel free to connect with me on LinkedIn! Let’s grow and share knowledge together. 😊