Skip to content

Commit 305cfa9

Browse files
committed
Add Merge Sorted Array
1 parent 0cc5930 commit 305cfa9

4 files changed

+72
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution {
2+
public:
3+
void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
4+
int x = m - 1, y = n - 1;
5+
6+
for (int z = m + n - 1; z >= 0; z--) {
7+
if (x < 0) {
8+
nums1[z] = nums2[y--];
9+
} else if (y < 0) {
10+
break;
11+
} else if (nums1[x] > nums2[y]) {
12+
nums1[z] = nums1[x--];
13+
} else {
14+
nums1[z] = nums2[y--];
15+
}
16+
}
17+
}
18+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution {
2+
public void merge(int[] nums1, int m, int[] nums2, int n) {
3+
int x = m - 1, y = n - 1;
4+
5+
for (int z = m + n - 1; z >= 0; z--) {
6+
if (x < 0) {
7+
nums1[z] = nums2[y--];
8+
} else if (y < 0) {
9+
break;
10+
} else if (nums1[x] > nums2[y]) {
11+
nums1[z] = nums1[x--];
12+
} else {
13+
nums1[z] = nums2[y--];
14+
}
15+
}
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
var merge = function(nums1, m, nums2, n) {
2+
let x = m - 1, y = n - 1;
3+
4+
for (let z = m + n - 1; z >= 0; z--) {
5+
if (x < 0) {
6+
nums1[z] = nums2[y--];
7+
} else if (y < 0) {
8+
break;
9+
} else if (nums1[x] > nums2[y]) {
10+
nums1[z] = nums1[x--];
11+
} else {
12+
nums1[z] = nums2[y--];
13+
}
14+
}
15+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution:
2+
def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
3+
"""
4+
Do not return anything, modify nums1 in-place instead.
5+
"""
6+
x, y = m-1, n-1
7+
8+
for z in range(m + n - 1, -1, -1):
9+
if x < 0:
10+
nums1[z] = nums2[y]
11+
y -= 1
12+
elif y < 0:
13+
break
14+
elif nums1[x] > nums2[y]:
15+
nums1[z] = nums1[x]
16+
x -= 1
17+
else:
18+
nums1[z] = nums2[y]
19+
y -= 1
20+
21+
# Time: O(n + m)
22+
# Space: O(1)

0 commit comments

Comments
 (0)