LintCode刷题笔记--Flip Bits

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LintCode刷题笔记--Flip Bits相关的知识,希望对你有一定的参考价值。

Flip Bits:

题目:Determine the number of bits required to flip if you want to convert integer to integer m.

解题思路:

给出两个数字a和b,返回两个数字中需要转换的内容
这道题主要是考察位运算的几种操作:
1.首先使用异或运算来确定在哪些位置上两个数字的二进制位不一样的数字上都填上1,得到bit=a^b.
2. 之后在与1进行与运算,如果bit的最后一位是1那么就得到1,否则为0
3. 将bit向右移动一位,比如00001001 –> 00000100, 这样每次都能检查到最后一位是0或者是1
4.反复如上过程,直到bit为0;

参考代码:

技术分享

 

以上是关于LintCode刷题笔记--Flip Bits的主要内容,如果未能解决你的问题,请参考以下文章

LintCode刷题笔记-- BackpackIV

LintCode刷题笔记-- BackpackII

LintCode刷题笔记-- LongestCommonSquence

LintCode刷题笔记-- Distinct Subsequences

LintCode刷题笔记--Longest Increasing Subsequence

LintCode刷题笔记-- Maximal Square