由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 抛砖引玉,讨论一下Jigsaw题?
相关主题
急问,Boggle (crossword)的解题思路?问一道少见的微软面试题。
自己总结了下什么时候用dp(循环),什么时候用递归问个算法题
boggle game是不是只有backtracking的解法?G家电面经验
splunk面经,攒人品求问关于AMAZON SDE I 的准备经验。
问一到题目Google onsite归来
一道2D array的题现在出发去F onsite
菜鸟用careercup书和leetcode准备的一点体会goole 电面面经
rejected by facebook after 2nd phone interview请教:boggle puzzle找所有的单词,怎么做?
相关话题的讨论汇总
话题: jigsaw话题: 抛砖引玉话题: 讨论一下话题: 碎片
进入JobHunting版参与讨论
1 (共1页)
j**l
发帖数: 2911
1
总觉得和Boggle题,跳马(骑士周游)题,迷宫题,图论,DFS, 回溯有千丝万缕的联系。不知
道和动态规划有没有关系。
题目:
嘉定每块碎片最多和另外四块碎片接合。你用到的数据结构是什么?假定你已经有了一个方法,可以告诉你两块碎片是否可以接合。你该如何解决这个puzzle, 使得你调用该方法的次数是最少的?
b********w
发帖数: 110
2
先说一个比较笨的 backtracking + prune的办法吧,不能保证最少比较。
假设有n块 jagsaw,number 0 to n-1, 建一个nx4的表 lookuptable,
lookuptable[i][0]-[3],就是可以和i jigsaw 连接的另外四块。然后每两块 jigsaw
i,j 互比,调用提供函数,如果i,j可以连接,就把对方的index添到自己的
lookuptable entry里面去。worst case (n-1)!其实不用,如果i,j其中有一个的
lookuptable entry已经满了就不需要比了。
然后假设最后的board是 (n-1)*(n-1)的,整个backtracking的程序框架是
1。首先判断当前board放满没有,如果满了,说明我们已经找到了一个解。
2。如果没有,先选择一个空的位置。
(x,y)=possible_move();
现在先随机选,实际可以优化。
然后产生可以放在这个位置的所有jigsaw candidates,这里需要一个
buffer,i.e.Use
1 (共1页)
进入JobHunting版参与讨论
相关主题
请教:boggle puzzle找所有的单词,怎么做?问一到题目
求牛人指点a家面试题一道2D array的题
A家onsite, OO答的真郁闷菜鸟用careercup书和leetcode准备的一点体会
Leetcode Word Break I 有o(n^2)的算法吗?rejected by facebook after 2nd phone interview
急问,Boggle (crossword)的解题思路?问一道少见的微软面试题。
自己总结了下什么时候用dp(循环),什么时候用递归问个算法题
boggle game是不是只有backtracking的解法?G家电面经验
splunk面经,攒人品求问关于AMAZON SDE I 的准备经验。
相关话题的讨论汇总
话题: jigsaw话题: 抛砖引玉话题: 讨论一下话题: 碎片