目录
🌺题目描述
🌺解题思路
遍历一遍arr数组,寻找最大值与对应下标,通过两次转换将最大值换到数组的末尾。调整后,忽略尾部调整的正确数字,再次遍历,寻找最大值。
注意:如果最大值已经在尾部,可以忽略操作。
🌺详细代码
class Solution {
public:
vector<int> pancakeSort(vector<int>& arr) {
vector<int> ans;
for(int n=arr.size();n>1;n--)
{
int max=-1,Index;
for(int i=0;i<n;i++)
{
if(arr[i]>max)
{
max=arr[i];
Index=i;
}
}
if (Index == n - 1)
{
continue;
}
reverse(arr.begin(), arr.begin() +Index + 1);
reverse(arr.begin(), arr.begin() + n);
ans.push_back(Index + 1);
ans.push_back(n);
}
return ans;
}
};
🌺每日金句
总是期待着别人来把我照亮,却忘记了自己也会发光
本人不才,如有错误,或有更好的解法,欢迎各位大佬在评论区讨论。如果对你有帮助的话还请点赞,收藏,关注哦!