日常做题,今天有点忙,下午才有时间,话不多说看题
题目拿到没啥头绪,初步思路是排序然后双指针比较,奈何脑容量有限没写出来,看评论后恍然大悟,思路:排序后用双指针分别指向nums1和nums2的第一个位置,比较大小,小的指针往后推一位,相同则将数添加到列表里,指针同时加一,一直到有一方到头为止,因数组有序所以剩下的数字并无交集。
class Solution:
def intersect(self, nums1: List[int], nums2: List[int]) -> List[int]:
nums1.sort()
nums2.sort()
i = j = 0
result = []
while i < len(nums1) and j < len(nums2):
if nums1[i] > nums2[j]:
j += 1
elif nums1[i] < nums2[j]:
i += 1
else:
result.append(nums1[i])
i += 1
j += 1
return result
越来越难了啊😫😫😫😫