Skip to content

Commit a54c2e8

Browse files
committed
homework_week8
1 parent bdf7c00 commit a54c2e8

3 files changed

Lines changed: 41 additions & 1 deletion

File tree

Week08/191-位1的个数.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Solution:
2+
def hammingWeight(self, n: int) -> int:
3+
count = 0
4+
while(n>0):
5+
n = n & (n-1)
6+
count +=1
7+
return count

Week08/231-2的幂.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution:
2+
def isPowerOfTwo(self, n: int) -> bool:
3+
if n==0:
4+
return False
5+
else:
6+
if n & (n-1) == 0:
7+
return True
8+
else:
9+
return False

Week08/NOTE.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,25 @@
1-
学习笔记
1+
学习笔记
2+
## 指定位置的位运算
3+
1. 将x最右边的n位清零:x&(~0<<n)
4+
2. 获取x的第n位值(0或者1):(x>>n)&1
5+
3. 获取x的第n位的幂值:x&(1<<n)
6+
4. 仅将第n位置为1:x|(1<<n)
7+
5. 仅将第n位置为0:x&(~(1<<n))
8+
6. 将x最高位至第n位(含)清零:x&((1<<n)-1)
9+
7. 将第n位至第0位(含)清零:x&(~((1<<(n+1))-1))
10+
11+
## 实战位运算要点
12+
• 判断奇偶:
13+
x%2==1 —>(x&1)==1 x%2==0 —>(x&1)==0
14+
• x>>1—>x/2.
15+
即: x=x/2; —> x=x>>1;
16+
mid=(left+right)/2; —> mid=(left+right)>>1;
17+
• X=X&(X-1)清零最低位的1
18+
• X&-X=>得到最低位的 1
19+
• X&~X=>0
20+
21+
## Bloom Filter vs Hash Table
22+
一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索
23+
一个元素是否在一个集合中。
24+
优点是空间效率和查询时间都远远超过一般的算法,
25+
缺点是有一定的误识别率和删除困难。

0 commit comments

Comments
 (0)