Skip to content

Commit 5a006d4

Browse files
add: 还是要自己学会归纳总结
1 parent 49b1979 commit 5a006d4

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

src/arr/readme.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
总结如下:
2+
1、去重类:
3+
用map就很舒服,关键技术:myMap = new Map()、myMap.set、myMap.get、Array.from(myMap)
4+
5+
2、合并有序数组:
6+
用两个指针,从后往前移动,不断对比加入到新的数组。

src/arr/合并两个有序数组.ts

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,36 @@
11
// 输入:nums1 = [1,3], nums2 = [4,5,7]
22
// 输出: [1,3,4,5,7]
3+
function merge(nums1, m, nums2, n){
4+
let nums = []
5+
for (let i = m - 1, j = n - 1, k = m + n - 1; k >= 0; --k) {
6+
console.log(i, j, k, nums)
7+
if(nums1[i] === undefined) {
8+
nums[k] = nums2[j--]
9+
}else if(nums2[j] === undefined) {
10+
nums[k] = nums1[i--]
11+
}else {
12+
nums[k] = nums1[i] > nums2[j]? nums1[i--] : nums2[j--];
13+
}
14+
}
15+
return nums
16+
}
17+
18+
// nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
19+
// [1,2,2,3,5,6]
20+
console.log(merge([1], 1, [], 0))
21+
22+
23+
24+
25+
26+
27+
28+
29+
30+
331

32+
// 参考答案
33+
/*
434
function merge(left, right) {
535
let result = []
636
let i = 0, j = 0
@@ -17,4 +47,5 @@ function merge(left, right) {
1747
}
1848
1949
return result
20-
}
50+
}
51+
*/

0 commit comments

Comments
 (0)