由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教一道题
相关主题
请教一道Leetcode 题,多谢[合集] Google Phone Interview
还是career cup[面试题] 如何打印一个二叉树level by level?
Level order traversal只让用一个Queue怎么做?print a BST level by level, last row first
问个经典面试题我恨iPhone@Facebook电面
amz电面:关于用两个stacks实现一个queue 求问如何实现binary tree的从下到上的分层打印?
面试F家让先做programming puzzle求救: 打印binary tree
问一道crack tech interview里面的题Bloomberg on-campus interview (failed) 求教
分享我经历的Google/Microsoft等公司的面试题问个老题
相关话题的讨论汇总
话题: stack话题: move话题: empty话题: 移数话题: 道题
进入JobHunting版参与讨论
1 (共1页)
a*s
发帖数: 425
1
请教一道题
和hanoi tower有点像,不过有点不一样
有N个stack, 每个stack都有几个数字,
每次,可以从其中的一个stack里取出一个或者几个数,然后放到另外一个stack里,
比如
stack_1里,有数字 4,3,6,2
stack_2里,有5,7,8
那么一次操作,可以从stack_1里,取6,2,然后放入stack_2,
那么,
stack_1里就成了4,3,
stack_2里变成了5,7,8,6,2
或者,可以从stack_1里,去3,6,2 放入 stack_2
那么,
stack_1里就变成了4,
stack_2里就变成了5,7,8,3,6,2
现在的问题是,给定一个初始的状态,一个最终的状态,通过上面的移数规则,找出最
少的移数步骤,
一个简单的例子,
初始状态:
stack_1:3,1,4
stack_2:2,5,
stack_3:(empty)
最终状态:
stack_1:(empty)
stack_2:(empty)
stack_3:1,2,3,4,5
那么最少的移动步骤是5步
1:move 5 from stack_2 to stack_1
2:move 1,4,5 from stack_1 to stack_3
3:move 4,5 from stack_3 to stack_1
4:move 3,4,5 from stack_1 to stack_2
5:move 2,3,4,5 from stack_2 to stack_3
p*****2
发帖数: 21240
2
应该是最短路径吧?所以BFS。
a*s
发帖数: 425
3
恩,可以具体一点么,
我不是CS的background,
怎么构建搜索的tree呢

【在 p*****2 的大作中提到】
: 应该是最短路径吧?所以BFS。
p*****2
发帖数: 21240
4

不用构建。把状态存到Queue里就可以了。

【在 a*s 的大作中提到】
: 恩,可以具体一点么,
: 我不是CS的background,
: 怎么构建搜索的tree呢

1 (共1页)
进入JobHunting版参与讨论
相关主题
问个老题amz电面:关于用两个stacks实现一个queue 求问
A家一道onsite题面试F家让先做programming puzzle
latest interview questions问一道crack tech interview里面的题
about DFS分享我经历的Google/Microsoft等公司的面试题
请教一道Leetcode 题,多谢[合集] Google Phone Interview
还是career cup[面试题] 如何打印一个二叉树level by level?
Level order traversal只让用一个Queue怎么做?print a BST level by level, last row first
问个经典面试题我恨iPhone@Facebook电面
相关话题的讨论汇总
话题: stack话题: move话题: empty话题: 移数话题: 道题