现有两个递增有序的数组A和B,将两个数组合并为数组C且递增排列。 数组A:1,7,9,11,13,15,17,19 数组B:2,4,6,8,10 合并后数组C:1,2,4,6,7,8,9,10,11,13,15,17,19
时间: 2023-09-13 09:03:11 浏览: 89
C++实现两个有序数组的合并
可以使用双指针法来合并两个有序数组。具体实现如下:
```python
def merge(nums1, nums2):
i, j, k = 0, 0, 0
merged = [0] * (len(nums1) + len(nums2))
while i < len(nums1) and j < len(nums2):
if nums1[i] < nums2[j]:
merged[k] = nums1[i]
i += 1
else:
merged[k] = nums2[j]
j += 1
k += 1
while i < len(nums1):
merged[k] = nums1[i]
i += 1
k += 1
while j < len(nums2):
merged[k] = nums2[j]
j += 1
k += 1
return merged
```
上面的代码中,我们使用了三个指针,`i`和`j`分别指向两个数组的起始位置,`k`指向合并后数组的起始位置。我们比较`nums1[i]`和`nums2[j]`的大小,将较小的数添加到`merged`数组中,并将对应指针向后移动一位。重复该过程直到有一个数组的所有元素都加入到`merged`数组中,最后将剩余元素直接加入到`merged`数组中即可。
阅读全文