Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1042fe5

Browse files
committed
docs: add No188、No461题解
1 parent eafaace commit 1042fe5

File tree

3 files changed

+102
-0
lines changed

3 files changed

+102
-0
lines changed

‎leetcode刷题/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
- [No.155 最小栈](note/No155_min-stack.md)
2727
- [No.160 相交链表](note/No160_get-intersection-node.md)
2828
- [No.169 多数元素](note/No169_majority-element.md)
29+
- [No.188 杨辉三角](note/No188_generate.md)
2930
- [No.189 旋转数组](note/No189_rotate-arr.md)
3031
- [No.191 位1的个数](note/No191_hamming-weight.md)
3132
- [No.198 打家劫舍](note/No198_rob.md)
@@ -42,6 +43,7 @@
4243
- [No.387 字符串中的第一个唯一字符](note/No387_first-uniq-char.md)
4344
- [No.412 Fizz Buzz](note/No412_fizz-buzz.md)
4445
- [No.448 找到所有数组中消失的数字](note/No448_find-disappeared-numbers.md)
46+
- [No.461 汉明距离](note/No461_hamming-distance.md)
4547
- [No.492 构造矩形](note/No492_construct-rectangle.md)
4648
- [No.581 最短无序连续子数组](note/No581_find-unsorted-subarray.md)
4749

‎leetcode刷题/note/No188_generate.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# No.188 杨辉三角
2+
3+
难度:`easy`
4+
5+
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
6+
7+
在杨辉三角中,每个数是它左上方和右上方的数的和。
8+
9+
## 示例
10+
11+
示例:
12+
13+
```
14+
输入: 5
15+
输出:
16+
[
17+
[1],
18+
[1,1],
19+
[1,2,1],
20+
[1,3,3,1],
21+
[1,4,6,4,1]
22+
]
23+
```
24+
25+
## 解题思路
26+
27+
正常的循环,计算当前的数字,满足`a[i][j] = a[i-1][j-1] + a[i-1][j]`
28+
29+
代码如下:
30+
31+
```javascript
32+
/**
33+
* @param {number} numRows
34+
* @return {number[][]}
35+
*/
36+
var generate = function(numRows) {
37+
let arr = [];
38+
for (let i = 0; i < numRows; i++) {
39+
arr.push([1]);
40+
arr[i][i] = 1;
41+
for (let j = 1; j <= i-1; j++) {
42+
let cur = arr[i-1][j-1] + arr[i-1][j];
43+
arr[i][j] = cur;
44+
}
45+
}
46+
return arr;
47+
};
48+
```
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# No.461 汉明距离
2+
3+
两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。
4+
5+
给出两个整数 x 和 y,计算它们之间的汉明距离。
6+
7+
注意:
8+
0 ≤ x, y < 231.
9+
10+
## 示例
11+
12+
13+
14+
示例:
15+
16+
```
17+
输入: x = 1, y = 4
18+
19+
输出: 2
20+
21+
解释:
22+
1 (0 0 0 1)
23+
4 (0 1 0 0)
24+
↑ ↑
25+
26+
上面的箭头指出了对应二进制位不同的位置。
27+
```
28+
29+
## 解题思路
30+
31+
这需要使用二进制数的一些操作,相对两个数求异或,新的数字中含1个数就是题目中说的汉明顿距离。
32+
33+
然后循环这个数,计算1的个数。
34+
35+
代码如下:
36+
37+
```javascript
38+
/**
39+
* @param {number} x
40+
* @param {number} y
41+
* @return {number}
42+
*/
43+
var hammingDistance = function(x, y) {
44+
let k = x^y;
45+
let count = 0;
46+
while(k!=0){
47+
k=k&(k-1);
48+
count++;
49+
}
50+
return count;
51+
};
52+
```

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /