zoukankan      html  css  js  c++  java
  • 剑指 Offer 15. 二进制中1的个数——JS

    题目描述

    请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。

    第一种方法

    直接遍历查询,最简单的方法,大家都能想到的。

    // 第一种
    var hammingWeight1 = function (n) {
        let temp = n.toString(2);
        let count = 0;
        for (let i = 0; i < temp.length; i++) {
            if (temp[i] == 1) {
                count++;
            }
        }
        return count;
    };
    

    第二种方法

    正则匹配查询

    // 第二种 正则
    var hammingWeight2 = function (n) {
        let temp = n.toString(2).match(/1/g);
        return temp ? temp.length : 0;
    }
    

    第三种方法

    将 n-1 与自身相与,进行一次计数器就 +1,直到为0.

    // 第三种 位运算
    var hammingWeight3 = function (n) {
        let i = 0;
        while (n) {
            n = n & (n - 1);
            i++;
        }
        return i;
    }
    
  • 相关阅读:
    CSS3中新增的对文本和字体的设置
    PAT1107:Social Clusters
    Git的一些操作
    PAT1029:Median
    PAT1024:Palindromic Number
    PAT1028:List Sorting
    PAT1035: Password
    PAT1133:Splitting A Linked List
    PAT1017:Queueing at Bank
    PAT1105:Spiral Matrix
  • 原文地址:https://www.cnblogs.com/Monster-su/p/14550060.html
Copyright © 2011-2022 走看看