美文网首页
常写常忘 - hammingWeight

常写常忘 - hammingWeight

作者: 砂壶 | 来源:发表于2020-05-05 15:46 被阅读0次

算法刷题系列:
https://leetcode-cn.com/problems/er-jin-zhi-zhong-1de-ge-shu-lcof/solution/mian-shi-ti-15-er-jin-zhi-zhong-1de-ge-shu-wei-yun/

方法一:逐位判断
判断 n最右一位是否为 1,根据结果计数。
将 n右移一位(本题要求把数字 n 看作无符号数,因此使用 无符号右移 操作)

/**
 * @param {number} n - a positive integer
 * @return {number}
 */
var hammingWeight = function(n) {
    let mask = 1;
    let count = 0;
    for(let i = 0; i<32; i++) {
        if((mask & n) != 0) {
            count++;
        }
        n >>= 1;
    }
    return count;
};

方法二:巧用 n & (n - 1)
n&(n−1) 解析: 二进制数字 n 最右边的 1 变成 0 ,此 1 右边的 0 都变成 1 。

/**
 * @param {number} n - a positive integer
 * @return {number}
 */
var hammingWeight = function(n) {
    let count = 0;
    while(n!=0) {
        count++;
        n = n&(n-1);
    }
    return count;
};

(写了几次总是忘记,用的位操作符很不熟悉,需要反复练习)
关于按位操作符:https://www.jianshu.com/p/41fc061407ca

相关文章

  • 常写常忘 - hammingWeight

    算法刷题系列:https://leetcode-cn.com/problems/er-jin-zhi-zhong-...

  • 常读常写常思考

    初识闫学老师是在读大夏书系《给教师阅读的建议》,这本书让我找到了教师应具有宽阔的人文视野,精深的专业知识,丰富的的...

  • 自嘲--码农写文

    余为攻城狮,常写电脑诗。 得闲来写文,免忘自为人。

  • Android常忘技能

    一.设置字体 1.自定义字体: 在assets目录下新建fonts目录,把ttf字体文件放进去 2.使用RoBot...

  • vim 查看历史命令

    常用也常忘 命令:q:

  • 常写常新

    天天写同样的主题,就会常写常新。 承认自己不会写作时,就写的更好了,因为你不再担心写的好与不好。绝望使人觉醒。有人...

  • 常写常新

    一般中年以后才能写好观点文。读书要丰富,阅历要丰富,还要多写多练,才能写好。 没有观点当然写不好,但是表达观点也需...

  • 常写常新

    常写常新 有一位文友(美丽洁白)说:“常写常新,同一题材不同阶段认识不同。” 我同意这位文友的观点。就如同我以前说...

  • 常读常写常新(2126字)

    【新网师·中学语文理想课堂课程·第六次作业】 常读常写常新 ———作文《文从字顺》指导教学设计 提交人:21295...

  • 常用常忘的代码

    1. 查看na数量 sum(is.na(x)) 2. 删除具有缺失值的列 t(na.omit(t(data))) ...

网友评论

      本文标题:常写常忘 - hammingWeight

      本文链接:https://www.haomeiwen.com/subject/lsjeghtx.html