Lintcode python之兩陣列的交

2021-08-08 23:48:26 字數 1220 閱讀 9631

返回兩個陣列的交

樣例 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].

python 的set集合就有交集的操作,而且順帶去重,簡直爽歪歪,直接用set,一行**搞定。

class

solution:

""" @param: nums1: an integer array

@param: nums2: an integer array

@return: an integer array

"""defintersection

(self, nums1, nums2):

# write your code here

return list(set(nums1) & set(nums2))

其他方法數學上等價於把set交集的操作**重寫一遍。

樣例 nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].

相比 i 結果沒有去重,那就有點麻煩了。

如果用 從nums1遍歷 元素 且 in nums2,這樣就沒考慮到多個重複的元素。

然後就想到雙指標遍歷,但由於兩陣列是無序的,那就先排序。

最後模擬下雙指標遍歷的情況如何取出兩陣列交的元素,**就出來了。

class

solution:

""" @param: nums1: an integer array

@param: nums2: an integer array

@return: an integer array

"""defintersection

(self, nums1, nums2):

# write your code here

nums1.sort()

nums2.sort()

res =

j = 0

# 指標2

for i, num1 in enumerate(nums1):

while j < len(nums2):

if nums2[j] > num1:

break

elif nums2[j] == num1:

j += 1

break

else:

j += 1

return res

Lintcode Python之移動零

題目 給乙個陣列 nums 寫乙個函式將 0 移動到陣列的最後面,非零元素保持原陣列的順序。樣例 給出 nums 0,1,0,3,12 呼叫函式之後,nums 1,3,12,0,0 注意事項 1.必須在原陣列上操作 2.最小化運算元 思路 1 移動賦值的話,想到雙指標首尾靠近遍歷,版本一的 出來了 ...

lintcode python 最長公共字串

最長公共字串 問題描述 給出兩個字串,找到最長公共子串,並返回其長度。如下 class solution def longestcommonsubstring self,a,b l if a or b 排除特殊情況 return 0 for i in range len a for j in ran...

LintCode python 小白3 三角形計數

題目 給定乙個整數陣列,在該陣列中,尋找三個數,分別代表三角形三條邊的長度,問,可以尋找到多少組這樣的三個數來組成三角形?樣例 例如,給定陣列 s 返回 3 其中我們可以找到的三個三角形為 給定陣列 s 返回 4 第一次思路 直接遍歷陣列,找出三個數,然後判斷是否滿足三角形條件 滿足三角形的條件有兩...