Python 和為S的兩個數字

2021-07-30 08:07:47 字數 1213 閱讀 2237

題目描述:

輸入乙個遞增排序的陣列和乙個數字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...