在已经排序的两个列表中,找出所有相同的元素
时间: 2024-05-08 09:20:39 浏览: 13
可以使用双指针的方法来实现。我们可以分别用两个指针 i 和 j 来遍历两个已经排好序的列表,比较两个指针指向的元素是否相等,如果相等,则将该元素加入结果列表中,并将两个指针都向后移动一位;如果不相等,则将较小的那个指针向后移动一位。直到其中一个指针遍历完整个列表为止,算法的时间复杂度为 O(n),其中 n 是两个列表的长度之和。
以下是 Python 实现代码:
```python
def find_common_elements(list1, list2):
i, j = 0, 0
common_elements = []
while i < len(list1) and j < len(list2):
if list1[i] == list2[j]:
common_elements.append(list1[i])
i += 1
j += 1
elif list1[i] < list2[j]:
i += 1
else:
j += 1
return common_elements
```
示例:
```python
list1 = [1, 3, 4, 6, 7, 9]
list2 = [1, 2, 4, 5, 9, 10]
print(find_common_elements(list1, list2)) # Output: [1, 4, 9]
```
相关问题
设计一个算法,在已经排序的两个列表中,找出所有相同的元素
可以使用双指针的方法来解决这个问题。
首先,我们定义两个指针i和j,分别指向两个已排序的列表的起始位置。
然后,我们比较这两个位置的元素,如果它们相等,就将它们加入到结果列表中,并将两个指针都向后移动一位。
如果它们不相等,我们就将较小的那个指针向后移动一位,直到找到一个与另一个指针所指元素相等的元素,或者一个指针到达列表的末尾。
重复上述步骤,直到其中一个指针到达列表的末尾为止。
这个算法的时间复杂度是O(m+n),其中m和n分别是两个列表的长度。
python找出两个集合中相同的数
可以使用 Python 的集合(set)来实现。
假设有两个集合 set1 和 set2,可以使用下面的代码找到它们的交集:
```python
intersection = set1 & set2
```
这里使用了“&”符号求两个集合的交集,intersection 变量将会是一个集合,包含 set1 和 set2 中共同出现的元素。
如果需要将交集转化为列表并按从小到大的顺序排序,可以使用下面的代码:
```python
intersection_list = sorted(list(intersection))
```
这里使用了 sorted() 函数对交集进行排序,并使用 list() 函数将交集转化为列表。
希望能够帮到你!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)