#题目:数组中找出两个元素之和 等于给定的整数 # 思路: # 1、将数组元素排序; # 2、array[i]与a[j](j的取值:i+1到len_array-1) 相加; # 3、如两两相加<整数继续,如=整数则输出元素值; # 4、如>则直接退出,i+1 开始下一轮相加比较 def addData(array, sumdata): temp_array = array temp_sumdata = sumdata print "sumdata: %d" %temp_sumdata # 如array中没有负数,则可以先将 >sumdata 的数删掉 # 为了避免长度变化问题,可将<sumdata的数赋值给另一array # temp_array = [] # len_temp_array2 = len(temp_array2) # for i in range(0,len_temp_array2): # if temp_array2[i] < temp_sumdata: # temp_array.append(temp_array2[i]) sorted(temp_array) len_temp_array = len(temp_array) # 计数符合条件的组数 num = 0 for i in range(0, len_temp_array-1): for j in range(i+1, len_temp_array): if temp_array[i] + temp_array[j] < temp_sumdata: continue elif temp_array[i] + temp_array[j] == temp_sumdata: num += 1 print "Group %d :" % num print "下标:%d, 元素值: %d" %(i, temp_array[i]) print "下标:%d, 元素值: %d" %(j, temp_array[j]) else: break if __name__=="__main__": test_array = [-1,1,2,3,4,5,6,7,8] test_sumdata = 6 addData(test_array, test_sumdata)