返回轨道
算法 · 2026-05-14 · 16 阅读

P49 二进制中 1 的个数

算法 16 阅读

信号摘要

难度:Easy · 时长:04:21 · leetcode 191 · lintcode 1332

P49 二进制中 1 的个数

未对外公开播放权限
点击查看说明

描述

这个题目说的是,给你一个整数,你要计算它的二进制表示中 1 的个数,然后返回。

比如说,给你的整数是 12,它的二进制表示是:

1100

包含两个 1,因此你要返回 2。

代码

public class AlgoCasts {

  // Time: O(m), Space: O(1)
  public int numberOfOneWithMask(int n) {
    int mask = 1, count = 0;
    while (mask != 0) {
      if ((n & mask) != 0) ++count;
      mask <<= 1;
    }
    return count;
  }

  // Time: O(k), Space: O(1)
  public int numberOfOne(int n) {
    int count = 0;
    while (n != 0) {
      ++count;
      n &= (n - 1);
    }
    return count;
  }

}

📡 通讯频道