LeetCode has a Medium coding Problem in Its’ Algorithm Section “Next Permutation Leetcode”. Today We are going to solve this problem. LeetCode Link of the Problem is HERE.
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
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
- Similarly, the next permutation of
arr = [2,3,1]is
- While the next permutation of
arr = [3,2,1]is
[3,2,1]does not have a lexicographical larger rearrangement.
Given an array of integers
nums, find the next permutation of
The replacement must be in place and use only constant extra memory.
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]
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.
class Solution(object): def nextPermutation(self, nums): """ :type nums: List[int] :rtype: None Do not return anything, modify nums in-place instead. """ if len(nums) <= 1: return for i in range(len(nums) - 2, -1, -1): if nums[i] < nums[i + 1]: for k in range(len(nums) - 1, i, -1): if nums[k] > nums[i]: nums[i], nums[k] = nums[k], nums[i] nums[i+1:] = sorted(nums[i+1:]) break break else: if i == 0: nums.sort()
Python-related posts Visit HERE
C++ related posts Visit HERE
Databases related posts Visit HERE
Data Structures related posts visit HERE
Algorithms related posts visit HERE
Data Science related posts visit HERE