【发布时间】:2014-11-07 04:01:57
【问题描述】:
我接受了软件开发人员职位的面试。那是电话面试。被问到这个问题,它一直困扰着我一整天
面试官让我想出一个在单词搜索网格上查找单词的通用方法。为简单起见,无需担心内存限制或在网格上对角搜索(从左到右和从上到下)。
我能想到的最好办法是在网格程序启动时创建一个哈希映射(在每次调用单词搜索之前)...让它创建一个 character = 的哈希映射> 行、列索引。这样您就可以在 O(1) 时间内执行初始扫描。然后从那里基本上从左到右或从上到下扫描。
我从他那里得到的印象是有更好的解决方案,但我还没有。解决此类问题的最快算法是什么?
【问题讨论】:
-
当我们说“最快”时,我们是否在计算预计算时间?如果没有,那么我们可以预先计算所有内容,所有查询都将是 O(1)。
-
如果你的问题是“请记住面试官想要什么”,恐怕这是不可能的。如果你想知道他们的意思,那么也许跟进提问的人。对此有大量的解决方案,选择“最佳”需要比此处提供的更多详细信息。
标签: algorithm