`
fly_宇光十色
  • 浏览: 63130 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

计算汉明权重

    博客分类:
  • Java
阅读更多

原题链接:#191 Number of 1 Bits

要求:

写一个函数,以一个无符号整数为参数,返回其汉明权重。例如,‘11’的二进制表示为'00000000000000000000000000001011', 故函数应当返回3。

汉明权重:指一个字符串中非零字符的个数;对于二进制串,即其中‘1’的个数。

代码如下:

 

public static int hammingWeight(int n) { 
        String str = Integer.toBinaryString(n);
        int tmp = 0;
        char[] ss = str.toCharArray();
        for(char s:ss){
         if(1 == (s-'0')){
          tmp++;
         }
        }
        return tmp;
 }

 

看到了另外一个更好的方法,学习了!

 

http://cwind.iteye.com/blog/2193686#comments

0
5
分享到:
评论
1 楼 Cwind 2015-05-22  
算法是正确的,但是创建了一个字符串对象和char数组,空间复杂度为O(n)。

相关推荐

Global site tag (gtag.js) - Google Analytics