給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
例如,給定陣列 nums = [-1,2,1,-4], 和 target = 1.
與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2).
這個題和三數之和那個題基本一樣,甚至思想更簡單了一些,只需要設定乙個差值,每次三數相加時對比差值,如果更小就儲存三數之和,而且這個題不需要去掉重複項,遍歷的思路還是一樣,先排序,然後逐個遍歷,利用雙指標將之後剩餘數都遍歷一遍算加和再比價差值即可。
c++源**:
class
solution
if(sum;else j--;}
}return res;}}
;
python3源**:
class
solution
:def
threesumclosest
(self, nums, target)
:"""
:type nums: list[int]
:type target: int
:rtype: int
"""res =
sum(nums[0:
3]) diff =
abs(res-target)
nums.sort(
)for k in
range
(len
(nums)-2
):i = k+
1 j =
len(nums)-1
while ithreesum = nums[k]
+ nums[i]
+ nums[j]
ifabs
(threesum-target)
diff =
abs(threesum-target)
res = threesum
if threesumi +=
1else
: j -=
1return res
LeetCode刷題 接雨水
給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 時間複雜度o n 空間複雜度o n int trap vector ...
leetcode刷題筆記16
面試題22.鍊錶中倒數第k個節點 輸入乙個鍊錶,輸出該鍊錶中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即鍊錶的尾節點是倒數第1個節點。例如,乙個鍊錶有6個節點,從頭節點開始,它們的值依次是1 2 3 4 5 6。這個鍊錶的倒數第3個節點是值為4的節點。definition for s...
leetcode題 42 接雨水(困難)
給定 n 個非負整數表示每個寬度為 1 的柱子的高度圖,計算按此排列的柱子,下雨之後能接多少雨水。上面是由陣列 0,1,0,2,1,0,1,3,2,1,2,1 表示的高度圖,在這種情況下,可以接 6 個單位的雨水 藍色部分表示雨水 感謝 marcos 貢獻此圖。示例 輸入 0,1,0,2,1,0,1...