Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion Index/位运算.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
| 题目 | 题解 | 难度 | 推荐指数 |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ---- | -------- |
| [90. 子集 II](https://leetcode-cn.com/problems/subsets-ii/) | [LeetCode 题解链接](https://leetcode-cn.com/problems/subsets-ii/solution/gong-shui-san-xie-yi-ti-shuang-jie-hui-s-g77q/) | 中等 | 🤩🤩🤩🤩 |
| [137. 只出现一次的数字 II](https://leetcode-cn.com/problems/single-number-ii/) | [LeetCode 题解链接](https://leetcode-cn.com/problems/single-number-ii/solution/gong-shui-san-xie-yi-ti-san-jie-ha-xi-bi-fku8/) | 中等 | 🤩🤩🤩 |
| [190. 颠倒二进制位](https://leetcode-cn.com/problems/reverse-bits/) | [LeetCode 题解链接](https://leetcode-cn.com/problems/reverse-bits/solution/yi-ti-san-jie-dui-cheng-wei-zhu-wei-fen-ub1hi/) | 简单 | 🤩🤩🤩 |
| [191. 位1的个数](https://leetcode-cn.com/problems/number-of-1-bits/) | [LeetCode 题解链接](https://leetcode-cn.com/problems/number-of-1-bits/solution/yi-ti-san-jie-wei-shu-jian-cha-you-yi-to-av1r/) | 简单 | 🤩🤩🤩 |
Expand Down
12 changes: 6 additions & 6 deletions LeetCode/191-200/191. 位1的个数(简单).md
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ Tag : 「位运算」

### 「位数检查」解法

![image.png](https://pic.leetcode-cn.com/1616375441-WGCssd-image.png)

一个朴素的做法是,对 `int` 的每一位进行检查,并统计 $1$ 的个数。

![image.png](https://pic.leetcode-cn.com/1616375441-WGCssd-image.png)

代码:
```Java []
public class Solution {
Expand All @@ -64,8 +64,6 @@ public class Solution {

### 「右移统计」解法

![image.png](https://pic.leetcode-cn.com/1616375636-fXCFNF-image.png)

对于方法一,即使 $n$ 的高位均为是 $0$,我们也会对此进行循环检查。

因此另外一个做法是:通过 `n & 1` 来统计当前 $n$ 的最低位是否为 $1$,同时每次直接对 $n$ 进行右移并高位补 0。
Expand All @@ -74,6 +72,8 @@ public class Solution {

这样的做法,可以确保只会循环到最高位的 $1$。

![image.png](https://pic.leetcode-cn.com/1616375636-fXCFNF-image.png)

代码:
```Java []
public class Solution {
Expand Down Expand Up @@ -124,10 +124,10 @@ public class Solution {

### 「分组统计」解法

![image.png](https://pic.leetcode-cn.com/1616378128-yBWadF-image.png)

以上三种解法都是 $O(k)$ 的,事实上我们可以通过分组统计的方式,做到比 $O(k)$ 更低的复杂度。

![image.png](https://pic.leetcode-cn.com/1616378128-yBWadF-image.png)

代码:
```Java []
public class Solution {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Tag : 「位运算」、「分治」
输入:11111111111111111111111111111101
输出:31
解释:输入的二进制串 11111111111111111111111111111101 中,共有 31 位为 '1'。
``` 
```

提示:
* 输入必须是长度为 32 的 二进制串 。
Expand All @@ -32,10 +32,10 @@ Tag : 「位运算」、「分治」

### 「位数检查」解法

![image.png](https://pic.leetcode-cn.com/1616375441-WGCssd-image.png)

一个朴素的做法是,对 `int` 的每一位进行检查,并统计 $1$ 的个数。

![image.png](https://pic.leetcode-cn.com/1616375441-WGCssd-image.png)

代码:
```Java []
public class Solution {
Expand All @@ -55,8 +55,6 @@ public class Solution {

### 「右移统计」解法

![image.png](https://pic.leetcode-cn.com/1616375636-fXCFNF-image.png)

对于方法一,即使 $n$ 的高位均为是 $0$,我们也会对此进行循环检查。

因此另外一个做法是:通过 `n & 1` 来统计当前 $n$ 的最低位是否为 $1$,同时每次直接对 $n$ 进行右移并高位补 0。
Expand All @@ -65,6 +63,8 @@ public class Solution {

这样的做法,可以确保只会循环到最高位的 $1$。

![image.png](https://pic.leetcode-cn.com/1616375636-fXCFNF-image.png)

代码:
```Java []
public class Solution {
Expand Down Expand Up @@ -115,10 +115,10 @@ public class Solution {

### 「分组统计」解法

![image.png](https://pic.leetcode-cn.com/1616378128-yBWadF-image.png)

以上三种解法都是 $O(k)$ 的,事实上我们可以通过分组统计的方式,做到比 $O(k)$ 更低的复杂度。

![image.png](https://pic.leetcode-cn.com/1616378128-yBWadF-image.png)

代码:
```Java []
public class Solution {
Expand Down