給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。想到了三數之和的套路,也就是排序+雙指標,固定乙個在位置i的數後,再[i+1, n-1]範圍內進行雙指標列舉和cur,用乙個全域性變數保持三數之和sum,當列舉到的和cur與target的絕對差小於全域性和sum與target的絕對差時替代即可。列舉過程中,如果列舉到的和cur小於target時,需要將左指標右移,大於target時,需要將右指標左移,等於直接返回target即可(雙指標必備套路,沒想到這點所以還是看了題解,唉)。
class
solution};
for(
int first =
0; first < n; first++
)int left = first +
1, right = n -1;
while
(left < right)
update
(cur);if
(cur > target)
right = r;
}else
left = l;}}
}return sum;}}
;
16 最接近的三數之和
給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 2 思考...
16 最接近的三數之和
給定乙個包括 n 個整數的陣列nums和 乙個目標值target。找出nums中的三個整數,使得它們的和與target最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2 1 2 如果...
16 最接近的三數之和
給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。例如,給定陣列 nums 1,2,1,4 和 target 1.與 target 最接近的三個數的和為 2.1 2...