題目描述:
輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。
輸出描述:
對應每個測試案例,輸出兩個數,小的先輸出。
方法一:
# -*- coding:utf-8 -*-
class solution:
def findnumberswithsum(self, array, tsum):
all =
for i in range(len(array)):
for j in range(i + 1, len(array)):
if array[i] + array[j] == tsum:
seq = [array[i], array[j]]
break
if len(all) > 1:
pro_all = {}
for k in range(len(all)):
pro = all[k][0] * all[k][1]
pro_all[k] = pro
pro_sorted = sorted(pro_all.items(), key = lambda item: item[1])
return all[pro_sorted[0][0]]
elif len(all) == 1:
return all[0]
else:
return
方法二:
# -*- coding:utf-8 -*-
class solution:
def findnumberswithsum(self, array, tsum):
if array is none :
return
if len(array) == 0:
return
i = 0
j = len(array) - 1
while i < j:
if array[i] + array[j] == tsum:
return array[i], array[j]
elif array[i] + array[j] < tsum:
i += 1
else:
j -= 1
return
python 和為S的兩個數字
輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出描述 對應每個測試案例,輸出兩個數,小的先輸出。coding utf 8 class solution def findnumberswithsum self,arra...
和為S的兩個數字
題目描述 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸入 每個測試案例包括兩行 第一行包含乙個整數n和k,n表示陣列中的元素個數,k表示兩數之和。其中1 n 10 6,k為int 第二行包含n個整數,每個陣列均為i...
和為S的兩個數字
輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出描述 對應每個測試案例,輸出兩個數,小的先輸出。class solution public vectorfindnumberswithsum vectorarray,i...