#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