中级农民
- 积分
- 138
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2016-9-7
- 最后登录
- 1970-1-1
|
若2个数组已sorted,那么用two pointers (O(Na + Nb) time complexity worse case). 这个和设计求vector dot product找两个vector相同的非零分量指标是一个思路。
- vector<int> findCommon(vector<int>& a, vector<int>& b) {
- vector<int> res;
- int ia = 0, ib = 0, na = a.size(), nb = b.size();
- while (ia < na && ib < nb) {
- if (a[ia] == b[ib]) {
- res.push_back(a[ia]); ia++; ib++; // output if a common found
- }
- else if (a[ia] > b[ib]) ib++; // b[ib] is behind, let its index catch up a little
- else ia++; // a[ia] is behind, let its index catch up a little
- }
- return res;
- }
复制代码 |
|