From a7188d3a10724a46cde0730010bb6858b3f98214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E6=A0=91=E6=A3=AE?= <14021051@buaa.edu.cn> Date: Tue, 30 Oct 2018 16:27:24 +0800 Subject: [PATCH] Create 461. Hamming Distance.md --- 461. Hamming Distance.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 461. Hamming Distance.md diff --git a/461. Hamming Distance.md b/461. Hamming Distance.md new file mode 100644 index 0000000..1fc5bf0 --- /dev/null +++ b/461. Hamming Distance.md @@ -0,0 +1,20 @@ +# [461. Hamming Distance](https://leetcode.com/problems/hamming-distance/description/) +# 思路 +求海明距离。 +先把x和y进行异或(^)操作, 再判断异或结果的二进制表示中有多少个1. +计算二进制表示有多少个1可参见这题的题解:[191. Number of 1 Bits](https://github.com/ShusenTang/LeetCode/blob/master/191.%20Number%20of%201%20Bits.md) +。这里采用思路二。 +# C++ +``` C++ +class Solution { +public: + int hammingDistance(int x, int y) { + int res = 0, tmp = x ^ y; + while(tmp > 0){ + res ++; + tmp &= (tmp - 1); + } + return res; + } +}; +```