@@ -57,13 +57,59 @@ Note that other answers, such as [3, 3], would also be accepted.
57
57
### ** Python3**
58
58
59
59
``` python
60
-
60
+ class Solution :
61
+ def pancakeSort (self , arr : List[int ]) -> List[int ]:
62
+ def reverse (arr , j ):
63
+ i = 0
64
+ while i < j:
65
+ arr[i], arr[j] = arr[j], arr[i]
66
+ i, j = i + 1 , j - 1
67
+
68
+ n = len (arr)
69
+ ans = []
70
+ for i in range (n - 1 , 0 , - 1 ):
71
+ j = i
72
+ while j > 0 and arr[j] != i + 1 :
73
+ j -= 1
74
+ if j < i:
75
+ if j > 0 :
76
+ ans.append(j + 1 )
77
+ reverse(arr, j)
78
+ ans.append(i + 1 )
79
+ reverse(arr, i)
80
+ return ans
61
81
```
62
82
63
83
### ** Java**
64
84
65
85
``` java
86
+ class Solution {
87
+ public List<Integer > pancakeSort (int [] arr ) {
88
+ int n = arr. length;
89
+ List<Integer > ans = new ArrayList<> ();
90
+ for (int i = n - 1 ; i > 0 ; -- i) {
91
+ int j = i;
92
+ for (; j > 0 && arr[j] != i + 1 ; -- j);
93
+ if (j < i) {
94
+ if (j > 0 ) {
95
+ ans. add(j + 1 );
96
+ reverse(arr, j);
97
+ }
98
+ ans. add(i + 1 );
99
+ reverse(arr, i);
100
+ }
101
+ }
102
+ return ans;
103
+ }
66
104
105
+ private void reverse (int [] arr , int j ) {
106
+ for (int i = 0 ; i < j; ++ i, -- j) {
107
+ int t = arr[i];
108
+ arr[i] = arr[j];
109
+ arr[j] = t;
110
+ }
111
+ }
112
+ }
67
113
```
68
114
69
115
### ** TypeScript**
@@ -94,6 +140,60 @@ function reverse (nums: Array<number>, end: number): void {
94
140
}
95
141
```
96
142
143
+ ### ** C++**
144
+
145
+ ``` cpp
146
+ class Solution {
147
+ public:
148
+ vector<int > pancakeSort(vector<int >& arr) {
149
+ int n = arr.size();
150
+ vector<int > ans;
151
+ for (int i = n - 1; i > 0; --i)
152
+ {
153
+ int j = i;
154
+ for (; j > 0 && arr[ j] != i + 1; --j);
155
+ if (j == i) continue;
156
+ if (j > 0)
157
+ {
158
+ ans.push_back(j + 1);
159
+ reverse(arr.begin(), arr.begin() + j + 1);
160
+ }
161
+ ans.push_back(i + 1);
162
+ reverse(arr.begin(), arr.begin() + i + 1);
163
+ }
164
+ return ans;
165
+ }
166
+ };
167
+ ```
168
+
169
+ ### **Go**
170
+
171
+ ```go
172
+ func pancakeSort(arr []int) []int {
173
+ var ans []int
174
+ n := len(arr)
175
+ reverse := func(j int) {
176
+ for i := 0; i < j; i, j = i+1, j-1 {
177
+ arr[i], arr[j] = arr[j], arr[i]
178
+ }
179
+ }
180
+ for i := n - 1; i > 0; i-- {
181
+ j := i
182
+ for ; j > 0 && arr[j] != i+1; j-- {
183
+ }
184
+ if j < i {
185
+ if j > 0 {
186
+ ans = append(ans, j+1)
187
+ reverse(j)
188
+ }
189
+ ans = append(ans, i+1)
190
+ reverse(i)
191
+ }
192
+ }
193
+ return ans
194
+ }
195
+ ```
196
+
97
197
### ** ...**
98
198
99
199
```
0 commit comments