1,O(N^2) 双重循环:
def get_pair(input_list): # 简单双重循环,结果会有很多重复值。
for v1 in input_list:
for v2 in input_list:
if v1 + v2 == 10:
print(v1, v2)
l = [2,3,5,1,8,9,5,7,4,6,9]
get_pair(l)
-------------------------------------
def get_pair(input_list): # 为了去掉重复值,使用下标遍历list,且i < j。
for i in range(len(input_list)):
for j in range(len(input_list)):
if input_list[i] + input_list[j] == 10 and i < j:
print(input_list[i], input_list[j])
l = [2,3,5,1,8,9,5,7,4,6,9]
get_pair(l)
2,O(NlogN) 先排序再一重循环:
def get_pair(input_list):
low = 0
high = len(input_list) - 1
while low < high:
if input_list[low] + input_list[high] > 10:
high -= 1
elif input_list[low] + input_list[high] < 10: