Menu Sidebar
Menu

bit manitupulation

Missing Number 位运算

 

[LintCode] Find the Missing Number

[LintCode] Count 1 in Binary

[Amazon] Add Binary Number By 1 without using + 正数加1不用加号

Bit操作的题, 给一个整数+1,不能用加号. 其实很简单,扫一下整数的每个bit(从低位到高位), 对它做&操作, 如果结果是0, 证明此位是0, 那么我们在这位+1, 如果是1, 那么我们清空此位.

   

[Facebook] Given an integer, add its binary number by 1 without “+” 整数加一, 不用加号.

一亩三分地上看的,不是我的面试, 写一个吧…感觉不是很难

算法思路: i是游标, (1 << i) 就是对n的每个位从右往左扫. if判断的是, 如果这位是 0, 那么就变成1. 如果不是, 那么这位肯定是1, 那么在未来的某次循环需要把0 变成1时, 这位肯定要变成0, 所以如果是1 就是0. 这里用的是clean bits的方法. 先去取反做mask, 再取与(and).  

书脊

倾城与倾国, 佳人难再得