Skip to content

Commit 402d290

Browse files
committed
31. Next Permutation [M] improve
1 parent 5f28560 commit 402d290

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/leetcode/_31_/Solution.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ private boolean isDone(int[] nums, int begin) {
1414
}
1515
if (end - begin == 2) {
1616
boolean result = nums[end - 1] > nums[begin];
17-
int temp = nums[end - 1];
18-
nums[end - 1] = nums[begin];
19-
nums[begin] = temp;
17+
swap(nums, begin, end);
2018
return result;
2119
}
2220
if (this.isDone(nums, begin + 1)) {
@@ -25,9 +23,7 @@ private boolean isDone(int[] nums, int begin) {
2523
int tmp = begin + 1;
2624
while (tmp < end) {
2725
if (nums[begin] < nums[tmp]) {
28-
int temp = nums[begin];
29-
nums[begin] = nums[tmp];
30-
nums[tmp] = temp;
26+
swap(nums,begin,tmp);
3127
return true;
3228
}
3329
tmp++;
@@ -36,4 +32,10 @@ private boolean isDone(int[] nums, int begin) {
3632
return false; // [1,3,5,2,4]
3733
}
3834
}
35+
36+
private void swap(int[] nums, int begin, int end) {
37+
int temp = nums[end - 1];
38+
nums[end - 1] = nums[begin];
39+
nums[begin] = temp;
40+
}
3941
}

0 commit comments

Comments
 (0)