騰訊50題第10題

2021-09-26 20:01:50 字數 1045 閱讀 7079

給定乙個包括 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 級別。示例...