
题目描述:
把两个有序数组合并成一个数组,第一个数组的空间正好可以容纳两个数组的元素。
分析
如下图所示:

从后向前覆盖可以防止丢失数据。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
arr1 = [None for k in range(0,6)] arr1[0] = 1 arr1[1] = 3 arr1[2] = 5 arr2 = [2,4,6] def (arr1,arr2): l = len(arr2) - 1 k = len(arr1) - 1 i = l j = l while(i >= 0 and j >= 0): if(arr1[i] < arr2[j]): arr1[k] = arr2[j] k -= 1 j -= 1 else: arr1[k] = arr1[i] k -= 1 i -= 1 if(j >= 0): while(j >= 0): arr1[k] = arr2[j] k -= 1 j -= 1 merge(arr1,arr2) print(arr1)
|
近期评论