Email List

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Email List相关的知识,希望对你有一定的参考价值。

题目:给几个Email的list,输出全部list的交集(在全部list中都出现过的email)。

思路:用set记录前i个list中都含有的email,当进行第i+1时,检查每个email是否在该set中存在,若存在,则说明该email在前i+1个list中都有,则将它记录到另一个set中。整个算法运行过程中,我们可以滚动地利用这两个set。

时间复杂度O(n)。n是全部list中出现的email个数。

 1     vector<string> EmailList(vector<vector<string> >& email)
 2     {
 3         vector<string> res;
 4         if (email.size() == 0) return res;
 5         unordered_set<string> dict[2];
 6         for (int i = 0, n = email.size(); i < n; i++)
 7         {
 8             dict[i % 2].clear();
 9             for (int j = 0, len = email[i].size(); j < len; j++)
10             {
11                 if (!i || dict[(i + 1) % 2].count(email[i][j]))
12                     dict[i % 2].insert(email[i][j]);
13             }
14         }
15         for (auto i : dict[(email.size() - 1) % 2])
16             res.push_back(i);
17         return res;
18     }

 

以上是关于Email List的主要内容,如果未能解决你的问题,请参考以下文章

常见的代码片段

无法从 onListItemClick 开始片段

elasticsearch代码片段,及工具类SearchEsUtil.java

基于时间复杂度的这些片段真的很困惑

如何从片段内的列表视图打开链接网址?

201621123062《java程序设计》第九周作业总结