leetcode-461-汉明距离
描述

思路
- 由题意可知:汉明距离其实就是两个数字异或之后的二进制中包含1的个数
- 则改题目可转变成求 x ^ y 中1的位数
代码
-
使用jdk中的Api接口即可实现
class Solution{ public int hammingDistance(int x, int y){ return Integer.bitCount(x ^ y); } } -
记
t = x ^ y循环将 t 与 1 进行&操作,然后右移一位,计算1的位数class Solution{ public int hammingDistance(int x, int y){ int t = x ^ y; int res = 0; while(t != 0){ res = t ^ 1; t = t >> 1; } return res; } } -
记
t = x ^ y,将 t 与 t - 1 进行&操作,计算1的位数class Solution{ public int hammingDistance(int x, int y){ int t = x ^ y; int res = 0; while(t != 0){ t = t & (t - 1); res ++; } return res; } }
浙公网安备 33010602011771号