這道題,好多都知識都沒用過,只是知道,看了答案才知道這麼用,基礎太差了,打算看看軟考書,查缺補漏,大學其實都學了,就是沒有好好聽,哈哈哈哈哈,大學我真的聽了,可是沒有悟進去,就是聽不明白,大學專業課基本我都沒逃過,套的都是心理啊、馬克思啊什麼的,還念大學,今年6月份看看跟女友回哈爾濱去大學溜達溜達,還有中央大街,哈哈哈。io
| 其中一個爲1,返回1,&都爲1,返回1class
class Solution {
public int hammingDistance(int x, int y) {
/*相同爲0不一樣爲1,基礎
只要統計出1出現的次數,就能夠獲得漢明距離。二進制
*/
int tag = x ^ y;
int count = 0;
while(tag >0){統計
/*註釋
& 並運算,0 & 0 = 0,0 & 1 = 0,1 & 1 = 1;while
因此tag & 0101,就能獲得最後一位是否是1,由於1的二進制0001前面都是0,因此直接忽略co
0101中的前三位010,只考慮最後一位1return
好比異或結果爲0101,tag
*/
if((tag & 1) == 1) ++count;
tag = tag>>1;
}
return count;
}
}
基礎很差,因此我想了很久纔想明白,第二個註釋才與^運算纔是重點。加油,今年要加薪。努力中