这道题我是参考了网上的题解,感觉这种思路还是挺巧妙的。
class Solution {
public:
vector<int> pancakeSort(vector<int>& arr) {
int n = arr.size();
vector<int> res;
int i = n - 1;
while (i >= 0)
{
int index = max_element(arr.begin(), arr.begin() + i + 1) - arr.begin();
if (index != i)
{
res.push_back(index + 1);
reverse(arr.begin(), arr.begin() + index + 1);
res.push_back(i + 1);
reverse(arr.begin(), arr.begin() + i + 1);
}
i--;
}
return res;
}
};