1
var prevPermOpt1 = function (arr) {
2
const n = arr.length;
3
let i = n - 1;
4

5
while (i > 0 && arr[i] >= arr[i - 1]) i--;
6

7
if (i === 0) return arr;
8

9
const swapIndex = i - 1;
10
const swapDigit = arr[swapIndex];
11

12
let maxIndex = i;
13
i = n - 1;
14

15
while (swapIndex < i) {
16
const currDigit = arr[i];
17

18
if (currDigit < swapDigit && currDigit >= arr[maxIndex]) maxIndex = i;
19
i--;
20
}
21

22
[arr[maxIndex], arr[swapIndex]] = [arr[swapIndex], arr[maxIndex]];
23

24
return arr;
25
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0