Skip to content

Commit ae06f9c

Browse files
committed
updated: fixed edge cases. -@iamserda
1 parent 2432935 commit ae06f9c

File tree

1 file changed

+32
-12
lines changed

1 file changed

+32
-12
lines changed

neetcodeio/merge_sorted_arrays.py

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,43 @@
11
def merge_sorted_arrays(arr1, arr2):
2+
if not arr1 and not arr2:
3+
return []
4+
if not arr1:
5+
return arr2
6+
if not arr2:
7+
return arr1
8+
29
arr3 = []
3-
ptr1 = 0
4-
ptr2 = 0
5-
while ptr1 < len(arr1) or ptr2 < len(arr2):
6-
if ptr1 >= len(arr1) or arr1[ptr1] >= arr2[ptr2]:
7-
arr3.append(arr2[ptr2])
8-
ptr2 += 1
10+
index1 = 0
11+
index2 = 0
12+
while index1 < len(arr1) or index2 < len(arr2):
13+
if index1 >= len(arr1):
14+
arr3.append(arr2[index2])
15+
index2 += 1
16+
continue
17+
if index2 >= len(arr2):
18+
arr3.append(arr1[index1])
19+
index1 += 1
20+
continue
21+
if arr1[index1] <= arr2[index2]:
22+
arr3.append(arr1[index1])
23+
index1 += 1
924
continue
10-
if ptr2 >= len(arr2) or arr1[ptr1] <= arr2[ptr2]:
11-
arr3.append(arr1[ptr1])
12-
ptr1 += 1
25+
if arr1[index1] >= arr2[index2]:
26+
arr3.append(arr2[index2])
27+
index2 += 1
1328
continue
14-
break
1529

1630
return arr3
1731

1832

1933
arr1 = [1, 3, 5, 7]
2034
arr2 = [0, 2, 4, 5, 7, 8]
2135
arr3 = merge_sorted_arrays(arr1, arr2)
22-
print(arr3)
23-
assert arr3 == sorted([*arr1, *arr2])
36+
# print(arr3)
37+
# assert arr3 == sorted([*arr1, *arr2])
38+
39+
arr1 = [1]
40+
arr2 = [0]
41+
arr3 = merge_sorted_arrays(arr1, arr2)
42+
# print(arr3)
43+
# assert arr3 == sorted([*arr1, *arr2])

0 commit comments

Comments
 (0)