LeetCode 191:位 1 的个数,如何跳过无关的零位
题目要求 给定一个正整数 n,返回它的二进制表示中 1 的个数。这个数量也叫 Hamming weight。 LeetCode 提供的方法接口是: hammingWeight(n: int) -> int 示例 1 输入:n = 11 二进制:1011 输出:3 示例 2 输入:n = 128 二进制:10000000 输出:1 约束 1 <= n <= 2^31 - 1 输入处于题目给定的非负整数范围内。 虽然当前约束从 1 开始,后面的实现也会自然处理 n = 0,并返回 0。 Step 1:先明确到底在数什么 先看一个不使用十进制表示的小任务: n = 101100₂ 从左到右可以看到三个 1: 1 0 1 1 0 0 ^ ^ ^ 所以答案是 3。 当前 baseline 是: 先看出整数的二进制表示,再人工统计其中的 1。 这个 baseline 的 break 是: ...