一.将两个有序数组去重合并为一个新的有序数组
def hebing():
a = [1,2,5,7,14,45,89]
b = [3,5,8,9,23,45,67,101]
i=0
j=0
m=0
c = []
while (i<len(a) and j<len(b)):
if a[i]< b[j]:
c.append(a[i])
i = i +1
elif a[i] == b[j]:
c.append(a[i])
i += 1
j += 1
else:
c.append(b[j])
j = j+1
# 将a,b数组中超过长度的添加都c中
while i<len(a):
c.append(a[i])
i +=1
while j < len(b):
c.append(b[j])
j += 1
print(c)
二. 从一个无序的m个整数的数组中找到最大的n个数
def get_N_max():
import heapq
a = [43, 5, 65, 4, 5, 8, 87]
re1 = heapq.nlargest(3, a) # 求最大的三个元素,并排序
print(re1)
此处使用了python内置模块heapq,heapq是基于堆的优秀排序算法