leecode/daily/2019-06-26.md
2020-05-22 18:17:19 +08:00

49 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 每日一题 - poker-reveal
### 信息卡片
- 时间2019-07-26
- 题目链接:无
- tag`stack` `queue` `backtrack`
### 题目描述
```
手中有 n 张牌
第一张放桌上,第二张挪到手牌最下面,第三张放桌上,第四章挪到手牌最下面,
循环直到所有牌都在桌上
如果桌上牌的顺序是 1 - n
原手牌顺序是什么?
i.e.
如果有 5 张牌,桌上顺序是 12345
手中顺序是 15243
手中牌流程是:
1 到桌上 5243
5 到牌尾 2435
2 到桌上 435
4 到牌尾 354
3 到桌上 54
5 到牌尾 45
4 到桌上 5
5 到牌尾 5
5 到桌上
```
### 参考答案
我们可以采取逆推理的方式来完成,假设我们现在桌上的扑克牌已经按照顺序排开了,
我们让时间倒流,一步一步推倒出最初的时候手上的牌即可。
这样的时间复杂度和空间复杂度都是O(n)
大家可以对比看下leetcode 950号问题这道题目是昨天题目的进阶版本通用情况
这里仅仅列举了950问题的参考代码 https://github.com/azl397985856/leetcode/blob/master/daily/answers/950.reveal-cards-in-increasing-order.js
### 其他优秀解答
```
暂无
```