/**
* 功能:交换某个整数的奇数位和偶数位,使用指令越少越好(即,位0与位1交换,位2与位3交换,以此列推)。
*/
/**
* 思路:先操作奇数位,再操作偶数位。将数字n的奇数位右移1位,偶数位左移1位。
* @param x
* @return
*/
public static int swapOddEvenBits(int x){
//奇数位右移...
分类:
其他好文 时间:
2015-08-06 15:09:04
阅读次数:
112
/**
* 功能:给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数。
* (一个略大一个略小。)
*/
三种方法:
方法一:蛮力法
方法二:位操作法
/**
* 方法:位操作法
* 思路:获取后一个较大的数
* 1)计算c0和c1。c1是拖尾1的个数,c0是紧邻拖尾1的作坊一连串0的个数。
* 2)将最右边、...
分类:
其他好文 时间:
2015-08-06 13:17:24
阅读次数:
236
题目:解释代码(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
/**
* 功能:用两个栈来实现一个队列。
*/
import java.util.*;
/**
* 思路:需要修改peek()和pop(),以相反顺序执行操作。可以利用第二个栈来反转元素的次序。
* stackNewest顶端为最新元素,stackOldest顶端为最旧元素,利用两个栈的元素的转移来实现。
*
*/
public class MyQuene1 {
...
分类:
其他好文 时间:
2015-08-04 19:26:51
阅读次数:
132
/**
* 功能:汉诺塔问题
* 描述:有3根柱子及N个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,
* 所有盘子自底向上从大到小依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。
* 移动圆盘时有以下限制:
* 1)每次只能移动一个盘子。
* 2)盘子只能从柱子顶端滑出移到下一根...
分类:
其他好文 时间:
2015-08-04 17:16:24
阅读次数:
122
栈和队列常见题型:
实现栈和实现队列。
两个栈实现一个队列。
设计栈,使得pop,push和min时间复杂度为O(1)。
滑动窗口的最大值。
栈的进出序列。...
分类:
编程语言 时间:
2015-07-26 22:45:25
阅读次数:
233
问题如下:黑马程序员训练营入学考试题10、28人买可乐喝,3个可乐瓶盖可以换一瓶可乐,那么要买多少瓶可乐,够28人喝?假如是50人,又需要买多少瓶可乐?(需写出分析思路)我的思路1:利用逆向思维和全局思维,假如28个都喝到了可乐,那么会有28个盖子,就可以兑换28/3=9(截..
分类:
编程语言 时间:
2015-06-18 20:09:32
阅读次数:
156
约瑟夫问题:转载自约瑟夫问题据说着名犹太历史/数学家约瑟夫(Josephus)有过以下的故事:在罗马人占领乔塔帕特後,40个犹太士兵与约瑟夫躲到一个洞中,眼见脱逃无望,一群人决定集体自杀,约瑟夫建议自杀方式,41个人排成圆圈,由第1个人开始报数,每报数到5的人就必须自杀,..
分类:
编程语言 时间:
2015-06-04 17:35:26
阅读次数:
136
二叉树的广度遍历想想还是比较简单的,利用队列存储当前结点的左儿子和右儿子用作未来的访问。
代码实现
/**
* 源码名称:TreeBFS.java
* 日期:2014-08-25
* 程序功能:二叉树广度遍历
* 版权:CopyRight@A2BGeek
* 作者:A2BGeek
*/
import java.util.LinkedList;
import java.u...
分类:
其他好文 时间:
2014-08-25 11:53:44
阅读次数:
185