排列 = [3,5,7,8,11,16,2]
在python中解决三和问题.算法的复杂性是多少?
三和问题要求找到列表中所有加上给定目标数的数字的组合.在Python中有一个可能的解决方案:`` num = 10 lst = [3,5,7,8,11,16,2] result = [] n = len(lst) lst.sort() for i in range(n-2): left = i+1 right = n-1 while left < right: total = lst[i] + lst[left] + lst[right] if total == num: result.append[lst[i], lst[left], lst[]]) left + 1 right - = 1fright < num: left + 1: right = 1 printresult) ``` 上述算法的复杂性是列表的长度为n2.因为我们必须对列表的两个元素进行重复,然后在每个剩余的元素上进行一个重复,然后再对其他两个元素进行互联搜索.