在一次采访中,我遇到了以下问题(我已经解决不了,没有试图欺骗自己):游戏从一个正整数。(例如)此数字转换为二进制表示形式,而是设置为的位数。(例如,)
玩家1选择一个比小的数字。只能将一位设置为1。(例如)令。(例如)如果满足先前的约束,并且设置的位数仍然等于N,则移动有效。
玩家2通过选择有效的从继续,然后玩家1从继续,依此类推。如果没有有效的动作,则玩家将输。
假设两个玩家都发挥最佳状态,则使用合理有效的方法确定获胜玩家。(在我的问题定义中,对此的限制是程序必须能够为容纳有符号的32位整数的数百万个输入数字提供解决方案。)也就是说,解决方案不需要完全分析。
我个人的兴趣是弄清楚我对找到并实施正确解决方案的期望是否合理,而在给出的120分钟内却没有关于正确性的反馈。或者这是那些“让我们看看他们之前是否曾经看过这个难题”之一。
我失败了,因为我选择实施一种看似合理的策略,这给了我一些预先给出的测试用例正确的结果,浪费了太多时间使它快速运行,最终导致错误的处理我的时间用完了。
回想起来,我应该对小数目的起始号码实施强力搜索并记住部分解决方案,但是事后看来总是20/20。我很好奇,但是是否有一种另类的通用方法使我无法成为一个蓬松的人。