leetcode-969:煎饼排序
leetcode-969:煎饼排序
- 题目
- 解题
- 方法一:
题目
题目链接
给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序。
一次煎饼翻转的执行过程如下:
- 选择一个整数 k ,1 <= k <= arr.length
- 反转子数组 arr[0…k-1](下标从 0 开始)
例如,arr = [3,2,1,4] ,选择 k = 3 进行一次煎饼翻转,反转子数组 [3,2,1] ,得到 arr = [1,2,3,4] 。
以数组形式返回能使 arr 有序的煎饼翻转操作所对应的 k 值序列。任何将数组排序且翻转次数在 10 * arr.length 范围内的有效答案都将被判断为正确。
示例 1:
输入:[3,2,4,1]
输出:[4,2,4,3]
解释:
我们执行 4 次煎饼翻转,k 值分别为 4,2,4,和 3。
初始状态 arr = [3, 2, 4, 1]
第一次翻转后(k = 4):arr = [1, 4, 2, 3]
第二次翻转后(k = 2):arr = [4, 1, 2, 3]
第三次翻转后(k = 4):arr = [3, 2, 1, 4]
第四次翻转后(k = 3):arr = [1, 2, 3, 4],此时已完成排序。
示例 2:
输入:[1,2,3]
输出:[]
解释:
输入已经排序,因此不需要翻转任何内容。
请注意,其他可能的答案,如 [3,3] ,也将被判断为正确。
解题
方法一:
参考链接
class Solution {public:vector<int> pancakeSort(vector<int>& arr) {vector<int> res;for(int n=arr.size();n>1;n--){int index=max_element(arr.begin(),arr.begin()+n)-arr.begin();if(index==n-1) continue;res.push_back(index+1);res.push_back(n);reverse(arr.begin(),arr.begin()+index+1);reverse(arr.begin(),arr.begin()+n);}return res;}
};
leetcode-969:煎饼排序相关推荐
- LeetCode 969. 煎饼排序
题目描述 给你一个整数数组 arr ,请使用煎饼翻转完成对数组的排序. 一次煎饼翻转的执行过程如下: 选择一个整数 k ,1 <= k <= arr.length 反转子数组 arr[0- ...
- LeetCode第969题 煎饼排序
LeetCode第969题 煎饼排序 题目 给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序. 一次煎饼翻转的执行过程如下: 选择一个整数 k ,1 <= k <= arr. ...
- C++ pancake sort煎饼排序的实现算法(附完整源码)
C++pancake sort煎饼排序的实现算法 C++pancake sort煎饼排序的实现算法完整源码(定义,实现,main函数测试) C++pancake sort煎饼排序的实现算法完整源码(定 ...
- C语言煎饼排序Pancake sort算法(附完整源码)
煎饼排序Pancake sort算法 煎饼排序Pancake sort算法的完整源码(定义,实现,main函数测试) 煎饼排序Pancake sort算法的完整源码(定义,实现,main函数测试) # ...
- LeetCode 280. 摆动排序
文章目录 1. 题目 2. 解题 1. 题目 给你一个无序的数组 nums, 将该数字 原地 重排后使得 nums[0] <= nums[1] >= nums[2] <= nums[ ...
- C++描述 LeetCode 26. 删除排序数组中的重复项
C++描述 LeetCode 26. 删除排序数组中的重复项 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客 ...
- Python:实现pancake sort煎饼排序算法(附完整源码)
Python:实现pancake sort煎饼排序算法 def pancake_sort(arr):cur = len(arr)while cur > 1:# Find the maximum ...
- LeetCode中等题之煎饼排序
题目 给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序. 一次煎饼翻转的执行过程如下: 选择一个整数 k ,1 <= k <= arr.length 反转子数组 arr[0- ...
- leetcode算法题--煎饼排序
原题链接:https://leetcode-cn.com/problems/pancake-sorting/ 算法思路: 1.在未排序的数中找出最大的一个数 2.两次排序,将这个数放在最后,这是已经排 ...
最新文章
- PARAMETERS 指令
- 1小时识别100亿张图像,每秒 80 亿亿次!「智算巨头」亮相中国南京
- AI理论知识整理(14)-矩阵的秩
- 详解Oracle DELETE和TRUNCATE 的区别
- PAT乙级(1001 害死⼈不偿命的(3n+1)猜想)
- c语言洗牌发牌结构体,C语言程序设计课程设计多功能计算器、洗牌发牌、学生文件处理、链表处理.doc...
- 【评论送书】适合初学者的 6 个有趣的 R 语言项目
- 3dmax中如何导出多个动画
- 计算机主机结构讲解,电脑内部结构图和讲解
- jQuery自定义动画animate函数的step属性
- [ManjaroLinux]-虚拟机安装
- LeetCode.623 Add One Row to Tree
- 苹果蓝牙耳机平替哪款最好?四款苹果蓝牙耳机平价替代
- 网络映射iscsi服务器,群晖iSCSI管理器连接网络硬盘详细介绍和配置使用说明
- 【ArcGIS Pro二次开发】(6):工程(Project)的基本操作
- 如何判断两个随机变量是否独立,同分布
- USB(一)——USB通用串行总线基础知识详述
- 炫技:拼接列表、破碎二维数组——Python sum()函数隐藏技能花式玩法
- 时间序列:时间序列模型---自回归过程(AutoRegressive Process)
- 用新招怎么留住淘客推广论坛的人气