Leetcode--461. 汉明距离
兩個(gè)整數(shù)之間的漢明距離指的是這兩個(gè)數(shù)字對(duì)應(yīng)二進(jìn)制位不同的位置的數(shù)目。
給出兩個(gè)整數(shù) x 和 y,計(jì)算它們之間的漢明距離。
注意:
0 ≤ x, y < 231.
示例:
輸入: x = 1, y = 4
輸出: 2
解釋:
1 ? (0 0 0 1)
4 ? (0 1 0 0)
? ? ? ?↑ ? ↑
上面的箭頭指出了對(duì)應(yīng)二進(jìn)制位不同的位置。
思路:
1. 取x,y的二進(jìn)制數(shù)字末尾進(jìn)行比較
2. 如果不同就給sum加一
3. x,y都右移一位,重復(fù)第一步
提交的代碼:
class Solution {
? ? public int hammingDistance(int x, int y) {
? ? ? ? int i,sum=0;
? ? ? ? for(i=1;i<=32;i++)
? ? ? ? {
? ? ? ? ? ? if((x&1)!=(y&1))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? sum++;
? ? ? ? ? ? }
? ? ? ? ? ? x = (x>>1);
? ? ? ? ? ? y = (y>>1);
? ? ? ? }
? ? ? ? return sum;
? ? }
}
總結(jié)
以上是生活随笔為你收集整理的Leetcode--461. 汉明距离的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode--213. 打家劫舍Ⅱ
- 下一篇: 【剑指offer】面试题68 - I:二