給定乙個包括 n 個整數的陣列 nums 和 乙個目標值 target。找出 nums 中的三個整數,使得它們的和與 target 最接近。返回這三個數的和。假定每組輸入只存在唯一答案。
例如,給定陣列 nums =[-
1,2,1,-4]
, 和 target =
1.與 target 最接近的三個數的和為 2.(-
1+2+
1=2)
.
class
solution
:def
threesumclosest
(self, nums: list[
int]
, target:
int)
->
int:
size =
len(nums)
if size <3:
return
diff =
float
('inf'
) nums.sort(
)for i in
range
(size -2)
:if i >
0and nums[i]
== nums[i -1]
:continue
left = i +
1 right = size -
1while left < right:
s = nums[i]
+ nums[left]
+ nums[right]
ifabs
(s - target)
< diff:
diff =
abs(s - target)
res = s
if s > target:
right -=
1elif s < target:
left +=
1else
:return target
return res
騰訊50題第8題
編寫乙個函式來查詢字串陣列中的最長公共字首。如果不存在公共字首,返回空字串 示例1 輸入 flower flow flight 輸出 fl 示例2 輸入 dog racecar car 輸出 解釋 輸入不存在公共字首。class solution def longestcommonprefix se...
騰訊50題第11題
將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4class solution def mergetwolists self,l1,l2 if l1 is none return l2 elif ...
騰訊50題第15題
假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,1,2,4,5,6,7 可能變為 4,5,6,7,0,1,2 搜尋乙個給定的目標值,如果陣列中存在這個目標值,則返回它的索引,否則返回 1 你可以假設陣列中不存在重複的元素。你的演算法時間複雜度必須是 o log n 級別。示例...