Skip to content

Commit 5f3d828

Browse files
committed
refactor Next Permutation
1 parent 7fc0f3c commit 5f3d828

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

go/next_permutation.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,13 @@ import "sort"
66
func nextPermutation(nums []int) {
77
for i := len(nums) - 1; i > 0; i-- {
88
if nums[i-1] < nums[i] {
9-
minN := nums[i]
10-
idx := i
9+
candidate, candidateIndex := nums[i], i
1110
for j := i; j < len(nums); j++ {
12-
if nums[j] < minN && nums[i-1] < nums[j] {
13-
idx = j
14-
minN = nums[j]
11+
if nums[j] < candidate && nums[i-1] < nums[j] {
12+
candidate, candidateIndex = nums[j], j
1513
}
1614
}
17-
nums[i-1], nums[idx] = nums[idx], nums[i-1]
15+
nums[i-1], nums[candidateIndex] = nums[candidateIndex], nums[i-1]
1816
sort.Slice(nums[i:], func(a, b int) bool {
1917
return nums[i+a] < nums[i+b]
2018
})

0 commit comments

Comments
 (0)