和為s的兩個數字

2021-10-06 19:17:45 字數 607 閱讀 4450

題目:

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,則輸出任意一對即可。

輸入:nums = ,target = 9

輸出:[2, 7] 或者 [7, 2]

解析:

雙指標法。乙個指標l第乙個元素,另乙個指標r指向最後乙個元素。如果兩個指標指向的元素之和大於s,則把r指標向左移動,如果小於s,則把l指標向右移動,如果等於s,則輸出l和r指向的元素。

class

solution

; vector<

int> ret;

int l =

0, r = nums.

size()

-1, ans =0;

while

(l < r)

else

if(target >

(nums[l]

+ nums[r]))

else

}return ret;}}

;

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