zoukankan      html  css  js  c++  java
  • [LeetCode] 461. Hamming Distance

    The Hamming distance between two integers is the number of positions at which the corresponding bits are different.

    Given two integers x and y, calculate the Hamming distance.

    Note:
    0 ≤ xy < 231.

    Example:

    Input: x = 1, y = 4
    
    Output: 2
    
    Explanation:
    1   (0 0 0 1)
    4   (0 1 0 0)
           ↑   ↑
    
    The above arrows point to positions where the corresponding bits are different.

    汉明距离。题意是给两个数字,请你求他们之间的hamming distance。hamming distance的定义是两个数字转化成二进制之后,有多少位数字是不同的。比如题目中的例子,1和4有两位数字不同,所以返回2。

    思路是首先做XOR运算,然后计算XOR的结果里有多少个1。因为XOR是同位置上的数字,相同为0,不同为1。

    时间O(1) - 只有最多32次计算

    空间O(1)

    Java实现

     1 class Solution {
     2     public int hammingDistance(int x, int y) {
     3         int n = x ^ y;
     4         int count = 0;
     5         while (n != 0) {
     6             count++;
     7             n = n & (n - 1);
     8         }
     9         return count;
    10     }
    11 }

    LeetCode 题目总结

  • 相关阅读:
    一分钟学会 ConstraintLayout 之从属性角度理解布局
    halcon采集一幅图像
    halcon连续采集图像
    LinearLayout布局
    Html input 标签
    Html 标签种类
    Html div 标签
    Html span 标签
    Html h1-h6 标签
    Html br 标签
  • 原文地址:https://www.cnblogs.com/cnoodle/p/13252936.html
Copyright © 2011-2022 走看看