16 最接近的三數之和

2021-10-07 11:22:52 字數 682 閱讀 6336

給定乙個包括 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...