我在一次采访中被问到这个问题,我无法完全回答。事实上,面试官自己也很困惑。想知道是否有人知道问题和答案的明确细节。
据我记得,问题是这样的:
如果你有 n 张牌,你会得到一个魔法序列,首先将第一张牌面朝上放在桌子上,将 1+1(即)2 张牌插入牌堆末端,取出下一张(第三张)牌并将其放入面朝上放在桌子上,取 3+1 即 4 张牌并将它们插入牌组的末端。
所以基本上,每次迭代,你拿一张牌面朝下放在桌子上,然后在牌组的末端插入 i+1 张牌。
这是我从问题中了解到的,我可能弄错了一些细节。但无论如何,现在的问题是:
- 给定一个值 n(所以让 n=5,所以卡片是 A、2、3、4、5)
- 找出这些卡片组成的魔法序列中的第 k 个值。
显然,这可以通过递归来解决,而不必执行直到 n 的操作。我建议我先得到魔法序列,然后返回第 k 个元素,但显然有更好的方法。另外,想知道是否有人知道这个问题的完整细节。
谢谢!