File tree Expand file tree Collapse file tree 3 files changed +102
-0
lines changed
Expand file tree Collapse file tree 3 files changed +102
-0
lines changed Original file line number Diff line number Diff line change 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 )
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
Original file line number Diff line number Diff line change 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+ ```
Original file line number Diff line number Diff line change 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+ ```
You can’t perform that action at this time.
0 commit comments