知識遷移能力 和為S的兩個數字

2021-09-13 12:43:17 字數 1360 閱讀 9105

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。

輸出描述:

對應每個測試案例,輸出兩個數,小的先輸出。

思路:由於從兩頭向中間進行查詢的,找到的第乙個組合一定是邊差距最大的,所以乘積最小。

python實現0:

// an highlighted block

390da4f7a00f44bea7c2f3d19491311b

def findnumberswithsum

(self, array, tsum)

: # 兩頭開始找匹配,乘積最小必定為最先找到的,如7+8

=151+

14=15乘積1

*14小

low, high =0,

len(array)-1

while low < high:

if array[low]

+ array[high]

> tsum:

high -=

1 elif array[low]

+ array[high]

< tsum:

low +=

1else

:return

[array[low]

, array[high]

]return

# 匹配失敗返回空list

python**實現

和為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...

和為s的兩個數字

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出描述 對應每個測試案例,輸出兩個數,小的先輸出。include using namespace std bool twonumberwithsum int data,i...