随笔分类 - code
摘要:解析:在处理链表问题时,”快行指针“(runner,或称第二个指针)是一种很常见的技巧。快行指针指的是同时用两个指针来迭代访问链表,只不过其中一个比另一个超前一些。 设立两个指针,比如*p和*q。p每次移动两步,即 p = p->next->next,q每次移动一步,即 q = q->next。...
阅读全文
摘要:用一个表达式,判断一个数X是否是2^N(2,4,8,16,…),不可用循环语句答案:!(X & (X - 1))分析:2^N(2,4,8,16)这样的数转化成二进制是10、100、1000、10000。 若X-1与X做与运算,结果是0,则X是2^N。扩展:求一个整数的二进制形式中包含1的数量。...
阅读全文
摘要:方法1:用异或语句a = a^b;b = a^b;a = a^b;注:按位异或运算符^是双目运算符,其功能是参与运算的两数各对应的二进制位相异或,当对应的二进制相异时,结果为1。参与运算数仍以补码形式出现。方法2:a = a+b;b = a-b;a = a-b;如果a、b都是比较大的两个数,a=a+...
阅读全文
浙公网安备 33010602011771号