码迷,mamicode.com
首页 >  
搜索关键字:java数据结构    ( 483个结果
9.9递归和动态规划(五)——确定某字符串的所有排列组合
/**  * 功能:确定某字符串的所有排列组合。  */ 注意:不考虑重复字符。若考虑重复字符,只需在加入permulations时去掉重复的字符串即可。 /** * 思路:元素由少到多,将新的元素塞进所有字符串中间的任意可能位置。 * @param str * @return */ public static ArrayList getPerms(...
分类:其他好文   时间:2015-08-11 18:44:24    阅读次数:167
9.9递归和动态规划(一)——小孩上楼梯的方式的种类
/**  * 功能:有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。计算小孩上楼梯的方式有多少种。  */ 两种方法: 方法一: //递归法 /** * 思路:自上而下的方式。 * 最后一步可能是从第n-1阶往上走1阶、从第n-2阶往上走2阶或从第n-3阶往上走3阶。 * 因此,抵达最后一阶的走法,抵达这最后三阶的方式的综合。 * ...
分类:其他好文   时间:2015-08-08 18:16:50    阅读次数:2006
9.7数学与概率(四)——在二维平面上,有一些点,请找出经过点数最多的那条线
/**  * 功能:在二维平面上,有一些点,请找出经过点数最多的那条线。/** * 思路:在任意两点之间画一条无线长的直线,用散列表追踪那条直线出现的次数最多。时间复杂度O(N*N) * 注意: * 1)用斜率和y轴截距来确定是否是同一条直线。 * 2)浮点数不一定能用二进制数准确表示,因此检查两个浮点数的差值是否在某个极小值(epsilon)内。 * 3)对于散...
分类:其他好文   时间:2015-08-08 15:05:13    阅读次数:218
9.7数学与概率(六)——检查一个数是否为素数
/**  * 功能:检查一个数是否为素数。  */ 两种方法: 方法一:/** * 思路:从2到n-1进行迭代,每次迭代都检查能否整除。 * @param n * @return */ public static boolean primeNaive(int n){ if(n<2) return false; for(int i=2;i<n;i++)...
分类:其他好文   时间:2015-08-08 15:04:52    阅读次数:103
9.7数学与概率(二)——实现整数的乘法、减法和除法运算,只允许使用加号
/**  * 功能:实现整数的乘法、减法和除法运算。只允许使用加号。  */ //减法 public static int minus(int a,int b){ return a+negate(b); } //取反 /** * 思路:对正数k的取反,只需要将-1连续加k次;对负数k的取反,只需要将1连续加k次。 * @param a * @return */...
分类:其他好文   时间:2015-08-07 20:15:16    阅读次数:177
9.7数学与概率(一)——给定直角坐标上的两条线,确定这两条线会不会相交
/**  * 功能:给定直角坐标上的两条线,确定这两条线会不会相交。  */ public class Line { static double epsilon=0.000001; public double slope;//斜率 public double yintercept;//与y轴的截距 public static void main(String[] args)...
分类:其他好文   时间:2015-08-07 20:15:15    阅读次数:105
9.5位操作(八)——单色屏幕上画水平线
/**  * 功能:有个单色屏幕存储在一个一维字节数组中,使得8个连续像素可以存放在一个字节里。屏幕宽度位w,  * 且w可以被8整除(即一个字节不会分布在两行上),屏幕高度可由数组长度和屏幕宽度推算得出。  * 实现方法drawHorizontalLine(byte[] screen, int width,int x1,int x2,int y),绘制从点(x1,y)  * 到点...
分类:其他好文   时间:2015-08-07 13:22:59    阅读次数:122
9.5位操作(六)——交换某个整数的奇数位和偶数位,使用指令越少越好
/**  * 功能:交换某个整数的奇数位和偶数位,使用指令越少越好(即,位0与位1交换,位2与位3交换,以此列推)。  */ /** * 思路:先操作奇数位,再操作偶数位。将数字n的奇数位右移1位,偶数位左移1位。 * @param x * @return */ public static int swapOddEvenBits(int x){ //奇数位右移...
分类:其他好文   时间:2015-08-06 15:09:04    阅读次数:112
9.5位操作(三)——给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数
/**  * 功能:给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数。  * (一个略大一个略小。)  */ 三种方法: 方法一:蛮力法 方法二:位操作法 /** * 方法:位操作法 * 思路:获取后一个较大的数 * 1)计算c0和c1。c1是拖尾1的个数,c0是紧邻拖尾1的作坊一连串0的个数。 * 2)将最右边、...
分类:其他好文   时间:2015-08-06 13:17:24    阅读次数:236
9.5位操作(四)——解释代码(n&(n-1))==0的具体含义
题目:解释代码(n&(n-1))==0的具体含义 1)(A&B)==0的含义 A和B的二进制表示的同一位置绝不会同为1。 2)n和n-1 若n的最低有效位为1,减去1后为0,其余为均相同,不符合要求。n的最低有效位为0,减去1时,必须向高位借1。 3)(n&(n-1))==0的含义 n的最高有效位为1,其余位为0。因此,n的值是2的某次方。 所以,(n...
分类:其他好文   时间:2015-08-06 13:15:27    阅读次数:170
483条   上一页 1 ... 33 34 35 36 37 ... 49 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!