給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
示例:輸入:nums = [-1,2,1,-4], target = 1
輸出:2
解釋:與 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。
檢查例子:
輸入:1,1,1,0 100
輸入:1,1,1,0 -100
最接近三數之和思想與三數之和思想相似,只不過在一些操作細節上需要注意一些。如下是該演算法相較於三數之和演算法的區別點:
//count_num1記錄三數之和的count_num與目標值之間的距離。
count_num1=count_num-target;
//如果|count_num1|小於|count_3-target|則count_num=count_num否則count_num=count_3。
if(count_num1<0)
else
public
class
day_21
int y=i+1;
for(
int j = nums.length-
1; j >y ;
)int count_3=nums[i]
+nums[j]
+nums[y];if
(count_3else}if
(count_3>target)
else}if
(count_3==target)}}
return count_num;
}public
static
void
main
(string[
] args)
system.out.
print
("輸入目標值:");
int target=input.
nextint()
; system.out.
println
(threesumclosest
(nums,target));
}}
演算法 最接近的三數之和
題目 給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。示例 輸入 nums 1,2,1,4 target 1 輸出 2 解釋 與 target 最接近的和是 2 ...
最接近的三數之和
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...
最接近的三數之和
給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 2 pu...