Bit Manipulation

题型

XOR:

可以求单身狗,因为a ^ a = 0,所以给定一个数组,如果所有的数的freq都是偶数,只有一个数是奇数。那么最后XOR的结果就是这个单身狗。

XOR和AND配合还可以求sum。因为通过XOR做的是不进位加法,我们可以得到不带carry的加法结果。但是还需要把carry加回去,这时我们做的就是AND运算,记住我们要把AND的结果左移1位才可以得到carry,然后递归求解即可,知道carry == 0退出递归。

题目

XOR + AND

  • Leetcode 371. Sum of Two Integers

AND with mark bit 1 to get every bit

  • Leetcode 393. UTF-8 Validation
  • Leetcode 191. Number of 1 Bits (总共有三种方法去得到一个number的parity,分别是bit shift, erase lowest set bit, array based cache)

除法(用乘法和减法来做)

  • Leetcode 29. Divide Two Integers

results matching ""

    No results matching ""