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:煎饼排序相关推荐

  1. LeetCode 969. 煎饼排序

    题目描述 给你一个整数数组 arr ,请使用煎饼翻转完成对数组的排序. 一次煎饼翻转的执行过程如下: 选择一个整数 k ,1 <= k <= arr.length 反转子数组 arr[0- ...

  2. LeetCode第969题 煎饼排序

    LeetCode第969题 煎饼排序 题目 给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序. 一次煎饼翻转的执行过程如下: 选择一个整数 k ,1 <= k <= arr. ...

  3. C++ pancake sort煎饼排序的实现算法(附完整源码)

    C++pancake sort煎饼排序的实现算法 C++pancake sort煎饼排序的实现算法完整源码(定义,实现,main函数测试) C++pancake sort煎饼排序的实现算法完整源码(定 ...

  4. C语言煎饼排序Pancake sort算法(附完整源码)

    煎饼排序Pancake sort算法 煎饼排序Pancake sort算法的完整源码(定义,实现,main函数测试) 煎饼排序Pancake sort算法的完整源码(定义,实现,main函数测试) # ...

  5. LeetCode 280. 摆动排序

    文章目录 1. 题目 2. 解题 1. 题目 给你一个无序的数组 nums, 将该数字 原地 重排后使得 nums[0] <= nums[1] >= nums[2] <= nums[ ...

  6. C++描述 LeetCode 26. 删除排序数组中的重复项

    C++描述 LeetCode 26. 删除排序数组中的重复项   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客 ...

  7. Python:实现pancake sort煎饼排序算法(附完整源码)

    Python:实现pancake sort煎饼排序算法 def pancake_sort(arr):cur = len(arr)while cur > 1:# Find the maximum ...

  8. LeetCode中等题之煎饼排序

    题目 给你一个整数数组 arr ,请使用 煎饼翻转 完成对数组的排序. 一次煎饼翻转的执行过程如下: 选择一个整数 k ,1 <= k <= arr.length 反转子数组 arr[0- ...

  9. leetcode算法题--煎饼排序

    原题链接:https://leetcode-cn.com/problems/pancake-sorting/ 算法思路: 1.在未排序的数中找出最大的一个数 2.两次排序,将这个数放在最后,这是已经排 ...

最新文章

  1. PARAMETERS 指令
  2. 1小时识别100亿张图像,每秒 80 亿亿次!「智算巨头」亮相中国南京
  3. AI理论知识整理(14)-矩阵的秩
  4. 详解Oracle DELETE和TRUNCATE 的区别
  5. PAT乙级(1001 害死⼈不偿命的(3n+1)猜想)
  6. c语言洗牌发牌结构体,C语言程序设计课程设计多功能计算器、洗牌发牌、学生文件处理、链表处理.doc...
  7. 【评论送书】适合初学者的 6 个有趣的 R 语言项目
  8. 3dmax中如何导出多个动画
  9. 计算机主机结构讲解,电脑内部结构图和讲解
  10. jQuery自定义动画animate函数的step属性
  11. [ManjaroLinux]-虚拟机安装
  12. LeetCode.623 Add One Row to Tree
  13. 苹果蓝牙耳机平替哪款最好?四款苹果蓝牙耳机平价替代
  14. 网络映射iscsi服务器,群晖iSCSI管理器连接网络硬盘详细介绍和配置使用说明
  15. 【ArcGIS Pro二次开发】(6):工程(Project)的基本操作
  16. 如何判断两个随机变量是否独立,同分布
  17. USB(一)——USB通用串行总线基础知识详述
  18. 炫技:拼接列表、破碎二维数组——Python sum()函数隐藏技能花式玩法
  19. 时间序列:时间序列模型---自回归过程(AutoRegressive Process)
  20. 用新招怎么留住淘客推广论坛的人气

热门文章

  1. docker-ce安装官翻
  2. 基于 zigbee的城市道路路灯实时远程监控与节能系统
  3. 旅游负面舆情暴发,中移能力开放商店舆情监测系统助你应对有方!
  4. springboot集成达梦数据库及SET IDENTITY_INSERT为ON时问题
  5. ChatGPT让亚马逊梦碎!微软CEO狂贬语音助手
  6. python 图像压缩 jpeg_python中原始图像的jpeg解压缩
  7. eclipse导入android项目卡死,水晶虎宫殿34998 -官网
  8. New关键字(实例化对象)
  9. 递归算法——排队购票
  10. Linux 修改tomcat默认端口号