Skip to content

Commit 66a69e3

Browse files
committed
docs: 新增No88、No412题解
1 parent cd0fffa commit 66a69e3

File tree

3 files changed

+150
-1
lines changed

3 files changed

+150
-1
lines changed

leetcode刷题/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
- [No.48 旋转图像](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No48_rotate.md)
1414
- [No.66 加一](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No66_plus-one.md)
1515
- [No.70 爬楼梯](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No70_climb-stairs.md)
16+
- [No.88 合并两个有序数组](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No88_merge.md)
1617
- [No.98 验证二叉搜索树](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No98_is-valid-BST.md)
1718
- [No.104 二叉树的最大深度](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No104_max-depth.md)
1819
- [No.122 买卖股票的最佳时机 II](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No122_max-profit.md)
@@ -31,7 +32,7 @@
3132
- [No.326 3的幂](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No326_is-power-of-three.md)
3233
- [No.350 两个数组的交集 II](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No350_intersect.md)
3334
- [No.387 字符串中的第一个唯一字符](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No387_first-uniq-char.md)
34-
35+
- [No.412 Fizz Buzz](https://github.com/Mayandev/javascript_algorithm/blob/master/leetcode%E5%88%B7%E9%A2%98/note/No412_fizz-buzz.md)
3536

3637
## 分类
3738

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# No.412 Fizz Buzz
2+
3+
难度: `easy`
4+
5+
写一个程序,输出从 1 到 n 数字的字符串表示。
6+
7+
1. 如果 n 是3的倍数,输出“Fizz”;
8+
9+
2. 如果 n 是5的倍数,输出“Buzz”;
10+
11+
3. 如果 n 同时是3和5的倍数,输出 “FizzBuzz”。
12+
13+
## 示例
14+
15+
16+
示例:
17+
18+
```
19+
n = 15,
20+
21+
返回:
22+
[
23+
"1",
24+
"2",
25+
"Fizz",
26+
"4",
27+
"Buzz",
28+
"Fizz",
29+
"7",
30+
"8",
31+
"Fizz",
32+
"Buzz",
33+
"11",
34+
"Fizz",
35+
"13",
36+
"14",
37+
"FizzBuzz"
38+
]
39+
40+
```
41+
42+
## 解题思路
43+
44+
直接判断是否能够整除即可。
45+
46+
代码如下:
47+
48+
```javascript
49+
/**
50+
* @param {number} n
51+
* @return {string[]}
52+
*/
53+
var fizzBuzz = function(n) {
54+
let strArr = [];
55+
for (let i = 1; i <= n; i++) {
56+
if (i % 5 == 0 && i % 3 == 0) {
57+
strArr.push('FizzBuzz');
58+
continue;
59+
}
60+
if (i % 3 == 0) {
61+
strArr.push('Fizz');
62+
continue;
63+
}
64+
if (i % 5 == 0) {
65+
strArr.push('Buzz');
66+
continue;
67+
68+
}
69+
strArr.push(`${i}`);
70+
71+
}
72+
return strArr;
73+
};
74+
```
75+

leetcode刷题/note/No88_merge.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# No.88 合并两个有序数组
2+
3+
难度:`easy`
4+
5+
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。
6+
7+
8+
说明:
9+
10+
初始化 nums1 和 nums2 的元素数量分别为 m 和 n。
11+
你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。
12+
13+
## 示例
14+
15+
示例:
16+
17+
```
18+
19+
输入:
20+
nums1 = [1,2,3,0,0,0], m = 3
21+
nums2 = [2,5,6], n = 3
22+
23+
输出: [1,2,2,3,5,6]
24+
25+
```
26+
27+
## 解题思路
28+
29+
第一种很简单粗暴,直接合并两个数字,再进行排序。
30+
31+
但是这样没有利用到数组原本就有序的特点。
32+
33+
这里使用插入排序的思想,将num2的数组依次插入到num1中。
34+
35+
代码如下:
36+
37+
```javascript
38+
/**
39+
* @param {number[]} nums1
40+
* @param {number} m
41+
* @param {number[]} nums2
42+
* @param {number} n
43+
* @return {void} Do not return anything, modify nums1 in-place instead.
44+
*/
45+
var merge = function(nums1, m, nums2, n) {
46+
let j = 0;
47+
let valid = m;
48+
while (j < n) {
49+
let isInsert = false;
50+
let element = nums2[j];
51+
for (let i = 0; i < valid; i++) {
52+
// 插入排序
53+
if (nums1[i] > element) {
54+
// 整个数组向后移动
55+
for (let a = valid; a > i; a--) {
56+
nums1[a] = nums1[a-1];
57+
}
58+
nums1[i] = element;
59+
isInsert = true;
60+
break;
61+
}
62+
}
63+
if (!isInsert) {
64+
nums1[valid] = element;
65+
}
66+
valid++;
67+
j++;
68+
}
69+
};
70+
71+
// merge([1,2,3,0,0,0],3,[2,5,6],3);
72+
73+
```

0 commit comments

Comments
 (0)