返回兩個陣列的交
樣例 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 第一次思路 直接遍歷陣列,找出三個數,然後判斷是否滿足三角形條件 滿足三角形的條件有兩...