合并两个有序数组(python版)
合并两个有序的数组
http://www.nowcoder.com/questionTerminal/89865d4375634fc484f3a24b7fe65665
归并排序的套路,按照下面套路来就完事了。
思路:
- 双指针从A和B的m、n尾部遍历
- 比较A和B的m、n尾部的值,将较大值赋给A整体数组的尾部,指针左移
- 注意特殊情况处理:A的尾指针已遍历结束,B尾指针还未结束。
代码:
# @param A int整型一维数组
# @param B int整型一维数组
#
class Solution:
def merge(self , A, m, B, n):
if not A and not B: return []
elif not A: return B
elif not B: return A
while m > 0 and n > 0:
if A[m-1] >= B[n-1]:
A[m+n-1] = A[m-1]
m-=1
else:
A[m+n-1] = B[n-1]
n-=1
if n > 0: A[:n] = B[:n]
return A麻豆出品,必出精品!


