DEV Community

Cover image for Next Permutation Leetcode – Python Solution
He Codes IT
He Codes IT

Posted on

Next Permutation Leetcode – Python Solution

LeetCode has a Medium coding Problem in Its’ Algorithm Section “Next Permutation Leetcode”. Today We are going to solve this problem.

Image description
Question
A permutation of an array of integers is an arrangement of its members into a sequence or linear order.

For example, for arr = [1,2,3], the following are considered permutations of arr: [1,2,3], [1,3,2], [3,1,2], [2,3,1].
The next permutation of an array of integers is the next lexicographically greater permutation of its integer. If not feasible, reorganize the array in the lowest order possible (i.e., sorted in ascending order).

For example, the next permutation of arr = [1,2,3] is [1,3,2].
Similarly, the next permutation of arr = [2,3,1] is [3,1,2].
While the next permutation of arr = [3,2,1] is [1,2,3] because [3,2,1] does not have a lexicographical larger rearrangement.
Given an array of integers nums, find the next permutation of nums.

The replacement must be in place and use only constant extra memory.

Examples

Input: nums = [1,2,3]
Output: [1,3,2]
Input: nums = [3,2,1]
Output: [1,2,3]
Input: nums = [1,1,5]
Output: [1,5,1]
Constraints:

1 <= nums.length <= 100
0 <= nums[i] <= 100
Solution to Next Permutation Leetcode
Given the Skeleton Code given by Leetcode

class Solution(object):
def nextPermutation(self, nums):
"""
:type nums: List[int]
:rtype: None Do not return anything, modify nums in-place instead.
"""

Looking forward from the end of the original array, we can see that the number progressively grows higher, then lowers at 2, and then we seek for the first number greater than 2, which is 3, then we swap 2 and 3, and finally we transpose all the numbers after 3.

Complete Solution : https://hecodesit.com/next-permutation-leetcode-python-solution/

Top comments (0)