[leetcode] 461. Hamming Distance

àì夳堔傛蜴生んèń 2022-06-02 11:44 236阅读 0赞

汉明距离:值两个整型数转换成二进制后对应位置不相同数(即一个数是0,同位置另一个数是1)的个数 或说成 一个数变成另一个数需要改变的数个数。

  1. Input: x = 1, y = 4
  2. Output: 2
  3. Explanation:
  4. 1 (0 0 0 1)
  5. 4 (0 1 0 0)

【思路】

1、求两个数二进制不同位,用异或运算符^。(^作用“相同出0,不同出1”)

2、统计1的个数。—>将异或结果xory进行移位运算 并和1进行&运算,为1 count++;

  1. 条件:0 `x`, `y` < 231.
  2. class Solution {
  3. public int hammingDistance(int x, int y) {
  4. int xory = x^y;
  5. int count = 0;
  6. for(int i=0; i<32; i++){
  7. if((xory & 1) != 0){
  8. count++;
  9. }
  10. xory >>= 1;
  11. }
  12. return count;
  13. }
  14. }

【总结】异或运算符的运用

发表评论

表情:
评论列表 (有 0 条评论,236人围观)

还没有评论,来说两句吧...

相关阅读