递归
小白AND小白
NOTHING
展开
-
工作安排---回溯法
现在有n位工程师和6项工作(编号为0至5), 现在给出每个人能够胜任的工作序号表(用一个字符串表示,比如:045,表示某位工程师能够胜任0号,4号,5号工作)。 现在需要进行工作安排,每位工程师只能被安排到自己能够胜任的工作当中去, 两位工程师不能安排到同一项工作当中去。 如果两种工作安排中有一个人被安排在的工作序号不一样就被视为不同的工作安排, 现在需要计算出有多少种不同工作安排计划。原创 2017-08-29 20:19:24 · 374 阅读 · 0 评论 -
格雷码---递归
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code), 请编写一个函数,使用递归的方法生成N位的格雷码。 给定一个整数n,请返回n位的格雷码,顺序为从0开始。public class 生成格雷码 { public static void main(String[] args) { Scanner sc =原创 2017-08-29 20:26:17 · 392 阅读 · 0 评论 -
幸运的袋子---递归
一个袋子里面有n个球,每个球上面都有一个号码(拥有相同号码的球是无区别的)。 如果一个袋子是幸运的当且仅当所有球的号码的和大于所有球的号码的积。 例如:如果袋子里面的球的号码是{1, 1, 2, 3},这个袋子就是幸运的,因为1 + 1 + 2 + 3 > 1 * 1 * 2 * 3 你可以适当从袋子里移除一些球(可以移除0个,但是别移除完),要使移除后的袋子是幸运的。 现在原创 2017-08-29 20:37:18 · 365 阅读 · 0 评论 -
用递归操作逆序栈---递归
一个栈依次压入1,2,3,4,5那么从栈顶到栈底分别为5,4,3,2,1。 将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现了栈中元素的逆序,请设计一个算法实现逆序栈的操作, 但是只能用递归函数来实现,而不能用另外的数据结构。 给定栈的大小n和一个栈Stack,请返回逆序后的栈。 测试样例: 5 1 2 3 4 5 返回: 5 4 3 2原创 2017-08-29 20:41:29 · 342 阅读 · 0 评论 -
汉诺塔轨迹---递归
从下往上按照大小顺序摞着64片黄金圆盘,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘 对于传统的汉诺塔游戏我们做一个拓展 我们有从大到小放置的n个圆盘,开始时所有圆盘都放在左边的柱子上, 按照汉诺塔游戏的要求我们要把所有的圆盘都移到右边的柱子上,请实现一个函数打印最优移动轨迹。 给定一个int n,表示有n个圆盘。请返回一个string数组,其中的元素依次为每次原创 2017-08-29 20:52:22 · 346 阅读 · 0 评论