Skip to content

Commit fac660d

Browse files
authored
Create 1053-previous-permutation-with-one-swap.js
1 parent be68ca2 commit fac660d

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/**
2+
* @param {number[]} A
3+
* @return {number[]}
4+
*/
5+
const prevPermOpt1 = function(A) {
6+
let n = A.length, left = n - 2, right = n - 1;
7+
while (left >= 0 && A[left] <= A[left + 1]) left--;
8+
if (left < 0) return A;
9+
while (A[left] <= A[right]) right--;
10+
while (A[right - 1] == A[right]) right--;
11+
swap(A,left,right)
12+
return A;
13+
};
14+
function swap(a, i, j) {
15+
let tmp = a[i]
16+
a[i] = a[j]
17+
a[j] = tmp
18+
}

0 commit comments

Comments
 (0)