LeetCode刷題之16 最接近的三數之和

2021-09-28 16:32:21 字數 1713 閱讀 6226

我不知道將去向何方,但我已在路上!

例如,給定陣列 nums = [-1,2,1,-4], 和 target = 1.與 target 最接近的三個數的和為 2. (-1 + 2 + 1 = 2)。
class

solution

:def

threesumclosest

(self, nums: list[

int]

, target:

int)

->

int:

nums.sort(

) sum_result = nums[0]

+ nums[1]

+ nums[2]

for i in

range

(len

(nums)):

num = nums[i]

left = i +

1 right =

len(nums)-1

while left < right:

sum_temp = num + nums[left]

+ nums[right]

if sum_temp == target:

return

(sum_temp)

ifabs

(sum_temp - target)

<

abs(sum_result - target)

: sum_result = sum_temp

if sum_temp > target:

right -=

1elif sum_temp < target:

left +=

1return

(sum_result)

# 執行用時 :300 ms, 在所有 python3 提交中擊敗了17.81%的使用者

# 記憶體消耗 :13.7 mb, 在所有 python3 提交中擊敗了5.04%的使用者

class

solution

:def

threesumclosest

(self, nums: list[

int]

, target:

int)

->

int:

import itertools

s = itertools.combinations(nums,3)

sum_result =

sum(nums[0:

3])for i in s:

sum_temp =

sum(i)

if sum_temp == target:

return

(sum_temp)

ifabs

(sum_temp - target)

<

abs(sum_result - target)

: sum_result = sum_temp

return

(sum_result)

# 執行用時 :2836 ms, 在所有 python3 提交中擊敗了5.03%的使用者

# 記憶體消耗 :13.8 mb, 在所有 python3 提交中擊敗了5.04%的使用者

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...