/**  * 功能:给你一堆n个箱子,箱子宽wi,高hi,深di。箱子不能翻转,将箱子堆起来时,下面箱子的宽度、高度和深度必须大于上面的箱子。  * 实现方法:搭出最高的一堆箱子,箱子堆的高度为每个箱子高度的总和。  */ 两种方法: 方法一:递归法 //递归法 public static ArrayList<Box> createStackR(Box[] boxes,Box bottom){ int maxHeight=0; ArrayList<Box> ma…

2015年8月14日 0条评论 11点热度 阅读全文

/**  * 功能:打印八皇后在8*8棋盘上的各种摆法,其中每个皇后都不同行、不同列,也不在对角线上。  * 这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线。  */ static int GRID_SIZE=8; /** * 思路:每一行只能摆放一个皇后,因此不需要将棋盘存储为完整的8*8矩阵,只需一维数组,其中columns[r]=c表示有个皇后位于r行c列。 * @param row * @param columns * @param results */ …

2015年8月14日 0条评论 12点热度 阅读全文

/**  * 功能:有个机器人坐在X*Y网格的左上角,只能向右、向下移动。机器人从(0,0)到(X,Y)有多少种走法。  * 进阶:假设有些点为“禁区”,机器人不能踏足。找出一条路径,让机器人从左上角移动到右下角。  */ 解答: 排列组合问题:共有(X+Y)!/X!Y! 进阶问题有两种方法: 方法一: //递归法 /** * 思路:自上而下 * 从终点往回走,试着找出到其相邻点的路径。 * @param x * @param y * @param path * @return */ …

2015年8月8日 0条评论 11点热度 阅读全文