日拱算法:什么是“煎饼排序”?
什么是“煎饼排序”?
通过“煎饼翻转”来进行排序,叫“煎饼排序”,那什么是“煎饼翻转”呢?(禁止套娃🐶)
一次煎饼翻转的执行过程如下:
选择一个整数 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 范围内的有效答案都将被判断为正确。
比如:
复制代码
解题思路:
每次找出最大值,做两次翻转
第一次将它翻转到最上面
第二次将它翻转到最下面
这样每次轮都会把最大的放到最下面,重复递归,直到第一个。
JavaScript 实现:
复制代码
验证:
<hr>
OK,以上便是本篇分享~~
我是掘金安东尼,输出暴露输入,技术洞见生活,再会~
版权声明: 本文为 InfoQ 作者【掘金安东尼】的原创文章。
原文链接:【http://xie.infoq.cn/article/7a1212e67bc75d70bc6545ac6】。文章转载请联系作者。
评论