题目描述
输入两个有序整型数组,输出两个数组的公共部分,公共部分要求为有序数组,实现最快算法。
示例
输入:
[-5,0,6,8,9,10],[0,8,9,11,15]
输出:
[0, 8, 9]
解题思路
题目要求我们中出两个有序数组的公共元素,我们可以直接从两个数组中开始遍历,由于数组有序,只要数组中的元素不相等,则继续往后遍历,若相等则输出。
代码实现
def handle(arrayA,arrayB):
res=[]
i=0
j=0
while(i<arrayA.__len__() and j<arrayB.__len__()):
if arrayA[i]>arrayB[j]:j+=1
elif arrayA[i]<arrayB[j]:i+=1
else:
res.append(arrayA[i])
i+=1
j+=1
return res
arrayA=[-5,0,6,8,9,10]
arrayB=[0,8,9,11,15]
print(handle(arrayA,arrayB))
运行结果:
[0, 8, 9]