为了账号安全,请及时绑定邮箱和手机立即绑定

高效列表交集算法

高效列表交集算法

给定两个列表(不一定排序),找到那些列表的交集的最有效的非递归算法是什么?
查看完整描述

3 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

您可以将第一个列表的所有元素放入哈希集中。然后,迭代第二个,并针对其每个元素,检查哈希以查看其是否存在于第一个列表中。如果是这样,请将其输出为相交的元素。


查看完整回答
反对 回复 2019-10-17
?
阿晨1998

TA贡献2037条经验 获得超6个赞

在C ++中,可以使用STL映射尝试以下方法


vector<int> set_intersection(vector<int> s1, vector<int> s2){


    vector<int> ret;

    map<int, bool> store;

    for(int i=0; i < s1.size(); i++){


        store[s1[i]] = true;

    }

    for(int i=0; i < s2.size(); i++){


        if(store[s2[i]] == true) ret.push_back(s2[i]);


    }

    return ret;

}


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 636 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信