威海做网站的重庆社区app最新版本下载
web/
2025/9/27 6:22:13/
文章来源:
威海做网站的,重庆社区app最新版本下载,网站正能量,拼多多怎么查商品排名1. 题目
给定数组 A#xff0c;我们可以对其进行煎饼翻转#xff1a;我们选择一些正整数 k A.length#xff0c;然后反转 A 的前 k 个元素的顺序。我们要执行零次或多次煎饼翻转#xff08;按顺序一次接一次地进行#xff09;以完成对数组 A 的排序。
返回能使 A 排…1. 题目
给定数组 A我们可以对其进行煎饼翻转我们选择一些正整数 k A.length然后反转 A 的前 k 个元素的顺序。我们要执行零次或多次煎饼翻转按顺序一次接一次地进行以完成对数组 A 的排序。
返回能使 A 排序的煎饼翻转操作所对应的 k 值序列。任何将数组排序且翻转次数在 10 * A.length 范围内的有效答案都将被判断为正确。
示例 1输入[3,2,4,1]
输出[4,2,4,3]
解释
我们执行 4 次煎饼翻转k 值分别为 424和 3。
初始状态 A [3, 2, 4, 1]
第一次翻转后 (k4): A [1, 4, 2, 3]
第二次翻转后 (k2): A [4, 1, 2, 3]
第三次翻转后 (k4): A [3, 2, 1, 4]
第四次翻转后 (k3): A [1, 2, 3, 4]此时已完成排序。
示例 2输入[1,2,3]
输出[]
解释
输入已经排序因此不需要翻转任何内容。
请注意其他可能的答案如[33]也将被接受。来源力扣LeetCode 链接https://leetcode-cn.com/problems/pancake-sorting 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2. 解题
找到未排序的最大数值的下标若不在第0位先反转使之在第0位然后将其反转至未排序的末尾
class Solution {
public:vectorint pancakeSort(vectorint A) {int i,j A.size()-1,k;vectorint ans;while(j1){i findmax(A,j);if(i ! 0)//不在队首翻2次先翻到队首{ans.push_back(i1);reverse(A.begin(), A.begin()i1);}ans.push_back(j1);//在队首直接翻到最后reverse(A.begin(), A.begin()j1);--j;}return ans;}int findmax(vectorint A, int j){//找未排序的最大数的下标int m INT_MIN, idx;for(int i0; ij; i)if(A[i] m){m A[i];idx i;}return idx;}
};
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82589.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!