We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 7b080a4 commit 79118d1Copy full SHA for 79118d1
leetcode/残酷刷题/31. Next Permutation.js
@@ -0,0 +1,25 @@
1
+/**
2
+ * @param {number[]} nums
3
+ * @return {void} Do not return anything, modify nums in-place instead.
4
+ 197 3 8642
5
+ 197 4 2368
6
+ */
7
+const nextPermutation = function (nums) {
8
+ const n = nums.length
9
+ let i = n - 1
10
+ while (i > 0 && nums[i] <= nums[i - 1]) {
11
+ i--
12
+ }
13
+ // 特殊情况,321,直接反转
14
+ if (i === 0) return nums.reverse()
15
+ // nums[i] > nums[i-1]
16
17
+ let j = n - 1
18
+ while (nums[j] <= nums[i]) j--
19
+ [nums[j], nums[i]] = [nums[i], nums[j]]
20
+ // reverse
21
+ for (let k1 = i + 1, k2 = n - 1; k1 < k2; k1++, k2--) {
22
+ [nums[k1], nums[k2]] = [nums[k2], nums[k1]]
23
24
+ return nums
25
+}
0 commit comments