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 538320d

Browse files
committed
feat: merge sorted array
1 parent 30a1ef9 commit 538320d

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

‎js/merge_sorted_array.js‎

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
/*
2+
* @Author: Chacha
3+
* @Date: 2022年05月19日 23:27:39
4+
* @Last Modified by: Chacha
5+
* @Last Modified time: 2022年05月19日 23:28:56
6+
*/
7+
8+
/**
9+
*
10+
* 来源:https://leetcode-cn.com/problems/merge-sorted-array/
11+
*
12+
* 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。
13+
* 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。
14+
*
15+
* 示例 1:
16+
* 输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
17+
* 输出:[1,2,2,3,5,6]
18+
*
19+
* 示例 2:
20+
* 输入:nums1 = [1], m = 1, nums2 = [], n = 0
21+
* 输出:[1]
22+
*
23+
*/
24+
const nums1 = [1, 2, 3, 0, 0, 0];
25+
const m = 3;
26+
const nums2 = [2, 5, 6];
27+
const n = 3;
28+
29+
const merge = (num1, m, num2, n) => {
30+
let i = m - 1;
31+
let j = n - 1;
32+
let k = m + n - 1;
33+
34+
while (i >= 0 && j >= 0) {
35+
if (num1[i] > num2[j]) {
36+
num1[k] = num1[i];
37+
i--;
38+
k--;
39+
} else {
40+
num1[k] = num2[j];
41+
j--;
42+
k--;
43+
}
44+
}
45+
46+
while (j >= 0) {
47+
num1[j] = num2[j];
48+
j--;
49+
}
50+
51+
return num1;
52+
};
53+
54+
console.log(merge(nums1, m, nums2, n));

0 commit comments

Comments
(0)

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