问题:n*n的行列有序的矩阵M,求第K大的数。行列有序是指每行、每列都是有序的。
最直接的办法就是给整个矩阵排序,然后找第K大的数。复杂度是(O(n^2logk))。其实还有更快的办法。
假设行列都是增序。注意到在矩阵的对角线上中任选一点x,右下角的矩阵里面的数都大于或等于x,而这里包含了(x^2)[......]
阅读全文
Posted in 算法(algorithm) |
问题:给一个8位的字节,按位逆序。第一反应给了个简单的做法:
unsigned short intreverse_bit(unsigned short int b)
{
unsigned short int r = 0;
for (int i=0; i<8; i++) {
b >> = 1
r = (r << 1) | (b & 1);
}
return r;
}
每次循环,r左移一位,b取最后一位填充到r的最后一位上,这个解答需要做8次循环,32次操作(左移一次,加法一次,右移一次,按位与一次)。很明显还有更好的做法。
unsigned short int reverse_bit(unsigned short int b)
{
b = b << 4 + b >> 4; // &11110000, 56781234
b = (b & 0x33) << 2 + (b & 0xCC) >> 2; // &11001100, 78563412
b = (b & 0x55) << 1 + (b & 0xAA) >> 1; // &10101010, 87654321
return b;
}
只需13次操作。
[......]
阅读全文
Posted in C/C++, 算法(algorithm) |
题目意思大概是,象棋棋盘上只有一相一帅,只能在9宫格内移动,且不能对面。要求给出相帅所有的位置的可能性,只能用一个变量。
只用一个变量,第一感是用位操作。给九宫格编个号:
1 2 3
4 5 6
7 8 9
遍历所有的位置,如果 位置编号 mod 3相同,说明在同一列中。按此思路,书中位操作的解法略[......]
阅读全文
Posted in C/C++, 算法(algorithm) |
Windows 7 或者 Windows Server 2008 默认情况下不支持IPX协议,而在很多需要局域网的游戏中还是经常需要用到IPX协议的。解决办法就是从XP系统中复制出IPX协议的驱动文件,然后在Windows 7的网卡的配置界面中就可以找到IPX协议的添加项了。
相关文件是:
X86版[......]
阅读全文
Posted in 知(knowledge), 系统(system) | Tagged IPX |
AP Logger Architecture

The above image shows the architecture of Android logging system.It provides a java class for logging named android.util.Log. [......]
阅读全文
Posted in android, debug | Tagged android, debug, log |
由于HTML本身并不认空格,因此网页中如果要展现程序代码通常会用<pre>标签来保留缩进、空格等格式。作为程序员的Blog,对此的需求更是高很多。单单利用<pre>标签保留代码格式还不能让代码看起来很漂亮,通常在IDE中都会有语法高亮的特性,利用google-code-pre[......]
阅读全文
Posted in web, wordpress | Tagged google, syntax highlight, wordpress |