Leetcode bit manipulation 总结

来源:互联网 发布:单片机第二章答案详解 编辑:程序博客网 时间:2024/06/02 07:36

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;
   }  
}


0 0
原创粉丝点击