📌  相关文章
📜  将一个大小为 n 的数组合并到另一个大小为 m+n 的数组中(1)

📅  最后修改于: 2023-12-03 14:53:46.417000             🧑  作者: Mango

将一个大小为 n 的数组合并到另一个大小为 m+n 的数组中

在编写程序时,我们经常需要将一个数组的元素合并到另一个数组中。下面介绍如何将一个大小为 n 的数组合并到另一个大小为 m+n 的数组中。

方法一:使用for循环逐个遍历
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,该函数接受两个数组array1array2以及要合并的array1的长度n。函数返回合并后的数组。

函数中我们先计算array2的长度m。然后使用array2 += [0] * narray2末尾预留n个位置,以便将array1合并到array2中。接着使用for循环,将array1中的元素逐个复制到array2的最后n个位置。最后返回合并后的数组array2

该方法的时间复杂度为O(n),空间复杂度为O(m+n)。

方法二:使用内置函数extend
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,该函数接受两个数组array1array2。函数返回合并后的数组。

函数中我们使用内置函数extendarray1合并到array2中。extend函数会将array1中的元素逐个添加到array2的末尾。最后返回合并后的数组array2

该方法的时间复杂度为O(n),但是由于extend函数本身需要额外的空间进行元素添加,因此空间复杂度略高于方法一,为O(m+n)。