摘要:
一、题目 1、审题 2、分析: n-皇后问题: 一个 n X n的棋盘,其中,每一行、每一列、每一斜行、每一反斜行都不能有重复的皇后,输出所有的可能。 二、解答 1、思路: 典型的回溯思想,运用 DFS 方法进行求解。其中: ①、斜行: [i-1][j-1] ②、 反斜行: [i-1][j+1] 阅读全文
摘要:
一、题目 1、审题 2、分析: 实现 pow(x, n) 方法,计算 x 的 n 次方; 其中 -100 < x < 100; n 的范围是有符号整形,即 -2147483648 < n < 2147483647; 二、解答 1、思路: 若依次相乘, n--,则会时间溢出。 方法一、利用 x*x 时 阅读全文
摘要:
一、题目 1、审题 2、分析: 给出一个字符串数组,将其中字符串中所含字母相同仅仅顺序不同的字符串归为一类,记录所有分类。 二、解答 1、思路: 方法一、利用 Java 封装的方法进行实现: ①、将字符串元素转为字符数组,进行排序,后重新转为有序的字符串; ②、新建一个 Map<String, Li 阅读全文
摘要:
一、题目 1、审题 2、分析: 给出一个二维数组代表的矩阵,求得矩阵顺时针旋转90度后的新矩阵。 二、解答 1、思路: 方法一、观察可知,原矩阵与新矩阵的对应关系如下: ①、原矩阵的列 == 新矩阵的行; ②、原矩阵的行 + 新矩阵的列 == 矩阵的最大行号 故借助一个二维数组可以实现 方法二、不申 阅读全文
摘要:
一、题目 1、审题 2、分析: 给出一个有重复数字的整形数组,求其全排序。 二、解答 1、思路: 方法一、在上一题的递归基础上,加上过滤条件。 例如:对于 112, ①、将1固定在第一位,求后边的12的排序; ②、此时应将第二个 1 固定在第一位,但是,与①重复,过滤掉; ③、将 2固定在第一位,求 阅读全文
摘要:
一、题目 1、审题 2、分析: 输入一个不重复整形数组,求他的全排序 二、解答 1、思路: 方法一:利用递归实现全排序,先固定第一个值,在对后边全排序...最终当固定的值为最大下标时,则此时即得一排序。 方法二: 将数组排成升序后,依次求得比这一个数组数字大的下一个数字数组,最终这些所有的字典序的数 阅读全文
摘要:
一、题目 1、审题 2、分析: 给出一个整形数组,数值对应在该下标可以向前跳动的最大步数,求跳到数组末尾的最小步数。 二、解答 1、思路: ①、利用广度优先算法BFS, 设置变量 step 代表步数, e 代表当前这一步(下标 i)到达的最远距离(即数组的下标), max 记录在下标 i 到达e之前 阅读全文
摘要:
一、题目 1、审题 2、分析: 判断两个字符串是否匹配,其中 p 中的特殊字符 ‘?’可以匹配任意一个字母, ‘*’ 可以匹配 0 个或多个不同的连续字符。 二、解答 1、思路: ①、定义两个指针,pIndex 指向 p 的下标, sIndex 指向 s 的下标; 再定义两个指针,pStarInde 阅读全文
摘要:
一、题目 1、审题 2、分析: 给定两个字符串,字符串形式为非负整数。在不使用 BigInteger 以及不把其转为 int 形式下 求该两数的乘积,返回结果为字符串。 二、解答 1、思路: 分析可知,num1 下标为 i 的数字与 num2 下标为 j 的数字相乘,所得的乘积为二位数字,且所在下标 阅读全文
摘要:
一、题目 1、审题 2、分析: 给出一组整数坐标,代表在 x 轴上的单位为1的木块的高度,求得这些木块之间最多可以积多少水。 二、解答 1、思路: 方法一:a、求出最高的木块的高度,记其下标为 index; b、求 index 左方最高木块的下标, secondIndex;并可以求出 secondI 阅读全文