136. Single Number
利用Xor 求结果
137. Single Number II
统计数字出现的数目,如果是1被整除,这一位是0,如果没有被1整除则这一位是0;
260.
Single Number III
利用其中的一位数字区别两个数,然后将两个数构成两个集合,这两个集合分别求XOR,得到的结果就是这两位数。
190.
Reverse Bits
得到最低位的数字然后将结果进行向左移动
191. Number of 1 Bits
每次用 n = n & (n - 1) 可以去掉一位1
268.
Missing Number
一样的进行Xor
231.
Power of Two
https://leetcode.com/problems/power-of-two/
掌握了n & (n - 1) = 0 there is just one 1 bit in n; so n is a power of 2;
318.
Maximum Product of Word Lengths
主要是判断两个字符串是否还有相同的字符,可以利用1进行一位,然后对数字做或运算
得到的结果,如果得到的结果不为0,则说明有相同的字符,这样的结果就可以跳过。
201.
Bitwise AND of Numbers Range
看别人的结果有一个很巧的答案
public class Solution {
public int rangeBitwiseAnd(int m, int n) {
while (n > m) {
n = n & n - 1;
}
return m & n;
}
}