File tree 3 files changed +69
-22
lines changed
solution/0000-0099/0031.Next Permutation
3 files changed +69
-22
lines changed Original file line number Diff line number Diff line change 78
78
79
79
```
80
80
81
- ### ** ...**
82
-
83
- ```
84
-
81
+ ### ** C++**
82
+
83
+ ``` cpp
84
+ class Solution {
85
+ public:
86
+ void nextPermutation(vector<int >& nums) {
87
+ int i, j;
88
+ int n = nums.size();
89
+ for (i = n - 2; i >= 0; i--) {
90
+ if (nums[ i] < nums[ i + 1] ) {
91
+ break;
92
+ }
93
+ }
94
+ if (i < 0)
95
+ reverse(nums.begin(), nums.end());
96
+ else {
97
+ for (j = n - 1; j >= 0; j--) {
98
+ if (nums[ i] < nums[ j] ) {
99
+ break;
100
+ }
101
+ }
102
+ swap(nums[ i] , nums[ j] );
103
+ reverse(nums.begin() + i + 1, nums.end());
104
+ }
105
+ }
106
+ };
85
107
```
86
108
87
109
<!-- tabs:end -->
Original file line number Diff line number Diff line change 68
68
69
69
```
70
70
71
- ### ** ...**
72
-
73
- ```
74
-
71
+ ### ** C++**
72
+
73
+ ``` cpp
74
+ class Solution {
75
+ public:
76
+ void nextPermutation(vector<int >& nums) {
77
+ int i, j;
78
+ int n = nums.size();
79
+ for (i = n - 2; i >= 0; i--) {
80
+ if (nums[ i] < nums[ i + 1] ) {
81
+ break;
82
+ }
83
+ }
84
+ if (i < 0)
85
+ reverse(nums.begin(), nums.end());
86
+ else {
87
+ for (j = n - 1; j >= 0; j--) {
88
+ if (nums[ i] < nums[ j] ) {
89
+ break;
90
+ }
91
+ }
92
+ swap(nums[ i] , nums[ j] );
93
+ reverse(nums.begin() + i + 1, nums.end());
94
+ }
95
+ }
96
+ };
75
97
```
76
98
77
99
<!-- tabs:end -->
Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public:
3
- void nextPermutation (vector<int > &nums) {
4
- int len = nums.size ();
5
-
6
- if (len == 0 )return ;
7
- int i,j;
8
- for (i = len - 2 ;i>=0 ;i--){
9
- if (nums[i+1 ] > nums[i]){
10
- for (j = len - 1 ;j>i;j--){
11
- if (nums[j]>nums[i])break ;
12
- }
13
- swap (nums[i],nums[j]);
14
- reverse (nums.begin ()+i+1 ,nums.end ());
15
- return ;
3
+ void nextPermutation (vector<int >& nums) {
4
+ int i, j;
5
+ int n = nums.size ();
6
+ for (i = n - 2 ; i >= 0 ; i--) {
7
+ if (nums[i] < nums[i + 1 ]) {
8
+ break ;
16
9
}
17
10
}
18
- reverse (nums.begin (),nums.end ());
11
+ if (i < 0 )
12
+ reverse (nums.begin (), nums.end ());
13
+ else {
14
+ for (j = n - 1 ; j >= 0 ; j--) {
15
+ if (nums[i] < nums[j]) {
16
+ break ;
17
+ }
18
+ }
19
+ swap (nums[i], nums[j]);
20
+ reverse (nums.begin () + i + 1 , nums.end ());
21
+ }
19
22
}
20
23
};
You can’t perform that action at this time.
0 commit comments