#1053
Previous Permutation With One Swap
specialist · 890 · lc medium +31 · verified · 49.3% accepted · 479 likes · top 36%
Description
Given an array of positive integers arr, return the largest permutation of arr that is lexicographically smaller than arr and can be produced with exactly one swap. If no smaller permutation is possible, return arr unchanged.
Example 1:
Input: arr = [3,2,1]
Output: [3,1,2]
Explanation: Swapping 2 and 1.
Example 2:
Input: arr = [1,1,5]
Output: [1,1,5]
Explanation: This is already the smallest permutation.
Example 3:
Input: arr = [1,9,4,6,7]
Output: [1,7,4,6,9]
Explanation: Swapping 9 and 7.
Code
1
2
3