note leetcode 三數相加

2021-10-04 06:08:49 字數 1377 閱讀 7856

給定乙個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組

class

solution

(object):

defthreesum

(self, nums)

: nums.sort(

)# 排序

res =

for i in

range

(len

(nums)):

# 遍歷每乙個數

if i ==

0or nums[i]

> nums[i -1]

:# 確定不重複的數字(開頭)

l = i +

1 r =

len(nums)-1

while l < r:

# 左邊的位置 必須小於 右邊的位置

s = nums[i]

+ nums[l]

+ nums[r]

# 三個數的和

if s ==0:

[nums[i]

, nums[l]

, nums[r]])

# 再找下一組解

l +=

1 r -=

1# 左邊向右移動到不重複數為止

while l < r and nums[l]

== nums[l -1]

: l +=

1# 右邊向左邊移動不重複數為止

201409 1 相鄰數對

試題編號 201409 1 試題名稱 相鄰數對 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。輸入格式 輸入的第一行包含乙個整數n,表示給定整數的個數。第二行包含所給定的n個整數。輸出格式 輸出乙個整數,表示值正好...

201409 1 相鄰數對

試題編號 201409 1 試題名稱 相鄰數對 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。輸入格式 輸入的第一行包含乙個整數n,表示給定整數的個數。第二行包含所給定的n個整數。輸出格式 輸出乙個整數,表示值正好...

201409 1 相鄰數對

問題描述 給定n個不同的整數,問這些數中有多少對整數,它們的值正好相差1。輸入格式 輸入的第一行包含乙個整數n,表示給定整數的個數。第二行包含所給定的n個整數。輸出格式 輸出乙個整數,表示值正好相差1的數對的個數。樣例輸入 610 2 6 3 7 8 樣例輸出 3樣例說明 值正好相差1的數對包括 2...