Python 3 LeetCode三數之和

2021-08-28 15:23:15 字數 836 閱讀 5248

大體思路:給原始資料排序,然後值在負數部分迴圈,去除相同值得時候因為排過序,所以相同值都挨在一起,比較方便去除相同值。注意三個數都應該判斷是否有相同值。

# -*- coding :utf-8 -*-

class solution:

def threesum(self, nums):

result =

temp_nums = sorted(nums)

l = len(temp_nums)

for i in range(l - 2):

if i > 0 and temp_nums[i] == temp_nums[i -1]:

continue

else:

if temp_nums[i] <= 0:#只迴圈負數

j = i + 1

k = l - 1

while j < k:

x = temp_nums[i] + temp_nums[j] + temp_nums[k]

if x == 0:

while j < k and temp_nums[j] == temp_nums[j+1]:#去掉重複部分左邊

j += 1

while j < k and temp_nums[k] == temp_nums[k-1]:#去掉重複部分右邊

k -= 1

j += 1

elif x > 0:

k -= 1

else:

j += 1

else:

break

return result

leetcode 整數反轉(python3)

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後整數溢位那麼就返回 0。題目連線 class solution def reverse self,x int int...

leetcode 移除元素 python3

一 自己思路 2.class solution def removeelement self,nums,val type nums list int type val int rtype int for i in range len nums flag true if nums i val cont...

leetcode 外觀數列 python3

方案一 遞迴方法 class solution def countandsay self,n int str if n 1 return 1 elif n 2 return 11 elif n 3 return 21 elif n 4 return 1211 elif n 5 return 1112...