求两个集合的交集

1、题目描述

    给定两个集合set1和set2,求这两个集合的交集。

2、解题思路

(1)暴力破解

    这个方法最简单,直接暴力枚举,假设第一个几个set1的元素个数为 m ,第二个集合set2的元素个数为 n ,那么这种方法的时间复杂度为O( m * n )

(2)排序

    对两个集合分别进行排序,时间复杂度为 O( m log m )和 O( n log n ),接着对排序后的集合进行比较,所用的时间复杂度为O( m + n ),所以这种方法的时间复杂度为 Max( O( m log m ),O( n log n ),O( m + n ))

(3)使用unorderd_map

    把两个集合写到一个hashmap里面,然后统计hashmap里面重复元素的个数。时间复杂度O( m + n ),空间复杂度 O( m + n )。

你可能感兴趣的:(算法)