Skip to content

Commit 91d6481

Browse files
authored
Update Merge Sorted Array.java
1 parent 5a0d6b9 commit 91d6481

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

Java/Merge Sorted Array.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
E
2-
1525413625
2+
1533441519
33
tags: Array, Two Pointers
44

55
给两个排好序的数组, merge. 其中一个数组nums1有多余的位置
@@ -31,6 +31,25 @@ You may assume that nums1 has enough space (size that is greater or equal to m +
3131
Hide Similar Problems (E) Merge Two Sorted Lists
3232
3333
*/
34+
// two pointer moving
35+
class Solution {
36+
public void merge(int[] nums1, int m, int[] nums2, int n) {
37+
if (nums1 == null || nums1.length == 0 || nums2 == null || nums2.length == 0) {
38+
return;
39+
}
40+
m--; n--;
41+
while (m >= 0 || n >= 0) {
42+
if (m >= 0 && n >= 0) {
43+
nums1[m + n + 1] = nums1[m] > nums2[n] ? nums1[m--] : nums2[n--];
44+
} else if (m < 0) { // n > 0
45+
nums1[n] = nums2[n--];
46+
} else if (n < 0) {
47+
break;
48+
}
49+
}
50+
}
51+
}
52+
3453
class Solution {
3554
public void merge(int[] nums1, int m, int[] nums2, int n) {
3655
if (nums1 == null || nums1.length == 0 || nums2 == null || nums2.length == 0) {
@@ -123,4 +142,4 @@ public void mergeSortedArray(int[] A, int m, int[] B, int n) {
123142
}
124143

125144

126-
```
145+
```

0 commit comments

Comments
 (0)