leetcode--Hamming Distance _我的解法

来源:互联网 发布:淘宝商城包包大全 编辑:程序博客网 时间:2024/05/16 12:27

原题目:


我的解法:

class Solution {public:    int hammingDistance(int x, int y){    vector<int>arrayx(31),arrayy(31);    for(int i=0;i<31;i++)      {arrayx[i]=0;       arrayy[i]=0;      }    int numx=0;    while (1)    {    arrayx[numx]=x%2;     numx++;    if(x/2==0) break;     x=x/2;    }    int numy=0;     while (1)    {    arrayy[numy]=y%2;    numy++;    if(y/2==0) break;     y=y/2;    }    for (int i=0;i<numx;i++)    cout<<arrayx[i]<<" ";    cout<<endl;    for (int i=0;i<numy;i++)    cout<<arrayy[i]<<" ";    cout<<endl;    int k=0;    int maxsize=0;    if(numx>numy)        maxsize=numx;    else        maxsize=arrayy.size();    for(int i=0;i<maxsize;i++)    {if (arrayx[i]==arrayy[i])       continue;       else  k++;    }    return k;}};

心得:第一次成功做完leetcode上的题目,虽然这套题看着简单,不过我做起来还是费了点劲,一共提交了三次才成功,第一次是测试失败,因为对汉明距离的理解不深入,也就是说如果两个数分别转换成二进制后,如果长度不一,短的那个要补0直到两个数的位数对齐,第二次是arrayx,arrayy没有初始化,所以造成了Runtime error.不过总体效率还不是很高,希望以后继续提升优化。


  
原创粉丝点击