摘要:
输入一个整数,输出该数二进制表示中1的个数。附加题:判断一个数是否是2的幂。一个整数数组里除了两个数字以外,其他数字都出现两次。请找出只出现一次的数字,要求时间复杂度O(n),空间复杂度O(1)。写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/即加减乘除四则运算符号。1、思路: 常规方法:逐位和1做与运算,看是否为1。如果右移位,当符号位为1时,会陷入死循环(高位补1)。所以选择左移位,当标志位为0时说明所有位都移动完成。 巧妙方法:当n-1时,与n相比,最右边的1变为0,再右侧的0变为1。所以n&(n-1)不为0,则计数加1,有几个1就有几次循环。 判断2的幂:用二进 阅读全文
posted @ 2013-03-27 11:35
月moon鸟
阅读(242)
评论(0)
推荐(0)

浙公网安备 33010602011771号