劍指offer57 1 和為s的兩個數字

2021-10-08 14:25:44 字數 809 閱讀 9115

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

示例 1:

輸入:nums =[2

,7,11

,15], target =

9輸出:[2,

7] 或者 [7,

2]

示例 2:

輸入:nums =[10

,26,30

,31,47

,60], target =

40輸出:[10,

30] 或者 [30,

10]

使用雙指標,分別指向陣列的開頭和結尾。如果兩個兩個指標對應的值大於target,尾指標減一,否則頭指標加一。

public

static

int[

]twotarget

(int

nums,

int target)

int[

] ints =

newint[2

];int left=0;

int right=nums.length-1;

while

(leftelseif(

(nums[left]

+nums[right]

)>target)

else

}return ints;

}

時間複雜度o(n),空間複雜度o(1)

劍指offer 和為s的兩個數

輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,使得它們的和正好是s。如果有多對數字的和等於s,則輸出任意一對即可。示例 1 輸入 nums 2,7,11,15 target 9 輸出 2,7 或者 7,2 示例 2 輸入 nums 10,26,30,31,47,60 target 40 輸...

劍指offer 和為S的兩個數字

esmp esmp 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出描述 esmp esmp 對應每個測試案例,輸出兩個數,小的先輸出。esmp esmp 首先,先考慮在遞增排序的陣列中找到兩個和為s的數字。這個思路...

劍指offer 和為S的兩個數字

題目描述 輸入乙個遞增排序的陣列和乙個數字s,在陣列中查詢兩個數,是的他們的和正好是s,如果有多對數字的和等於s,輸出兩個數的乘積最小的。輸出描述 對應每個測試案例,輸出兩個數,小的先輸出。ps 拋物線開口向下,找到的第一組 相差最大的 就是乘積最小的,不需要比較 class solution in...