題目描述:
給你乙個整數陣列 a 和乙個整數 k,請在該陣列中找出兩個元素,使它們的和小於 k 但盡可能地接近 k,返回這兩個元素的和。
如不存在這樣的兩個元素,請返回 -1。
示例 1:
輸入:a = [34,23,1,24,75,33,54,8], k = 60
輸出:58
解釋:34 和 24 相加得到 58,58 小於 60,滿足題意。
示例 2:
輸入:a = [10,20,30], k = 15
輸出:-1
解釋:我們無法找到和小於 15 的兩個元素。
1 <= a.length <= 100
1 <= a[i] <= 1000
1 <= k <= 2000
方法1:雙指標
主要思路:
(1)首先將輸入的陣列進行排序;
(2)對排序後的陣列使用雙指標分別指向頭尾,逐漸更新兩個數之和,並在這個過程中儲存和小於目標值的最大值;
class
solution
else
}return min_k==int_min?-1
:min_k;
//根據值是否更新,返回結果}}
;
小於 K 的兩數之和
給你乙個整數陣列a和乙個整數k,請在該陣列中找出兩個元素,使它們的和小於k但盡可能地接近k,返回這兩個元素的和。如不存在這樣的兩個元素,請返回 1。示例 1 輸入 a 34,23,1,24,75,33,54,8 k 60 輸出 58 解釋 34 和 24 相加得到 58,58 小於 60,滿足題意。...
小於K的兩數之和
給你乙個整數陣列a和乙個整數k,請在該陣列中找出兩個元素,使它們的和小於k但盡可能地接近k,返回這兩個元素的和。如不存在這樣的兩個元素,請返回 1。示例1 輸入 a 34,23,1,24,75,33,54,8 k 60 輸出 58 解釋 34 和 24 相加得到 58,58 小於 60,滿足題意。示...
兩數之和,三數之和
兩數之和 方法一 暴力 throw new illegalargumentexception 時間複雜度 o n 2 空間複雜度 o 1 public int twosum int nums,int target throw newillegalargumentexception no twosum...