📅  最后修改于: 2023-12-03 14:53:46.417000             🧑  作者: Mango
在编写程序时,我们经常需要将一个数组的元素合并到另一个数组中。下面介绍如何将一个大小为 n 的数组合并到另一个大小为 m+n 的数组中。
def merge_array(array1, array2, n):
m = len(array2)
# 将array2末尾预留n个位置
array2 += [0] * n
# 将array1合并到array2中
for i in range(n):
array2[m+i] = array1[i]
return array2
array1 = [1,2,3]
array2 = [4,5,6]
n = len(array1)
result = merge_array(array1, array2, n)
print(result) # 输出 [4, 5, 6, 1, 2, 3]
上述代码中,我们首先定义一个函数merge_array
,该函数接受两个数组array1
和array2
以及要合并的array1
的长度n
。函数返回合并后的数组。
函数中我们先计算array2
的长度m
。然后使用array2 += [0] * n
将array2
末尾预留n个位置,以便将array1
合并到array2
中。接着使用for循环,将array1
中的元素逐个复制到array2
的最后n个位置。最后返回合并后的数组array2
。
该方法的时间复杂度为O(n),空间复杂度为O(m+n)。
def merge_array(array1, array2):
array2.extend(array1)
return array2
array1 = [1,2,3]
array2 = [4,5,6]
result = merge_array(array1, array2)
print(result) # 输出 [4, 5, 6, 1, 2, 3]
上述代码中,我们先定义一个函数merge_array
,该函数接受两个数组array1
和array2
。函数返回合并后的数组。
函数中我们使用内置函数extend
将array1
合并到array2
中。extend
函数会将array1
中的元素逐个添加到array2
的末尾。最后返回合并后的数组array2
。
该方法的时间复杂度为O(n),但是由于extend
函数本身需要额外的空间进行元素添加,因此空间复杂度略高于方法一,为O(m+n)。