如何高效运用deque算法解决UVa120的Flapjacks问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计709个文字,预计阅读时间需要3分钟。
分析+算法超简单,给你一组热饼,用笔画在纸上画一画就知道了。还是动态规划的思路,从下至上,保持已经遍历过的热饼都是最大且有顺序的。例如输入的数据为:2 4 1 3
Analysis
分析
算法很简单,给你一组煎饼,用笔在纸上一画就知道该怎么办了。还是动态规划的思想,从底至上,保持已经遍例过的煎饼都是最大且有序的。比如输入的数据为:
2 4 1 3 5
按题目要求,4在顶5在底。5已经是最大的了,则移动到上一个煎饼3。3之上(含)最大的是4,先将4翻转到最顶,形成:
4 2 1 3 5
然后将4到3的子叠翻转,形成:
3 1 2 4 5
移动到上一个煎饼2,2之上(含)最大的是3,而3就在顶部,因此直接将2到3翻转,形成:
2 1 3 4 5
最后将2和1翻转,就完成了。注意:一定不要忘了在输入的一行数据下再将原数据复制输出一行,漏掉必然WA。按照上面的算法来做就不会出现多余的翻转操作,因此不用担心。
本文共计709个文字,预计阅读时间需要3分钟。
分析+算法超简单,给你一组热饼,用笔画在纸上画一画就知道了。还是动态规划的思路,从下至上,保持已经遍历过的热饼都是最大且有顺序的。例如输入的数据为:2 4 1 3
Analysis
分析
算法很简单,给你一组煎饼,用笔在纸上一画就知道该怎么办了。还是动态规划的思想,从底至上,保持已经遍例过的煎饼都是最大且有序的。比如输入的数据为:
2 4 1 3 5
按题目要求,4在顶5在底。5已经是最大的了,则移动到上一个煎饼3。3之上(含)最大的是4,先将4翻转到最顶,形成:
4 2 1 3 5
然后将4到3的子叠翻转,形成:
3 1 2 4 5
移动到上一个煎饼2,2之上(含)最大的是3,而3就在顶部,因此直接将2到3翻转,形成:
2 1 3 4 5
最后将2和1翻转,就完成了。注意:一定不要忘了在输入的一行数据下再将原数据复制输出一行,漏掉必然WA。按照上面的算法来做就不会出现多余的翻转操作,因此不用担心。

