和為S的兩個數字

2021-07-27 01:36:16 字數 565 閱讀 7763

題目描述

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

輸出描述:

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

演算法解析:

對於乙個遞增的有序陣列,我們如果從頭到尾暴力掃瞄,那就十分不智,如果我們將兩個標誌位分別設在開頭和結尾,如果這兩個標誌位的和小於s,則將small向後移動,如果標誌位的和大於s,則big前移,如果相等,我們就考慮這兩個數的乘積,rank後決定是否更新結果。

**如下:

public arraylistfindnumberswithsum(int  array,int sum) 

while (small < big)else

}small ++;

}else

if (check > sum)else

}return result;

}

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