我对算法有疑问。
我们获得了一系列用户,并且 每个用户的属性集。如 我们读一个用户后,我们应该配对 它与另一个以前读过的用户 具有相同属性的人 目前未配对,如果是这样的用户 存在。
如果用户无法配对,我们 应该保持该用户在未配对 集。
问题是,
- 我们如何有效地实施这一匹配流程......
- 如果我们允许近似匹配,我们将如何实现它 属性也是......
醇>
第一个问题的解决方案,我发现使用trie数据结构,其中我们按排序顺序排列每个用户的属性,并开始将atttributes插入到trie中,用户连接到leaf。如果有新用户进入,我们会遵循相同的trie,如果我们发现以前的用户已连接到该叶子,那么我们找到了该对,否则我们将该新用户插入到叶子中。
请提出您的想法或对此解决方案的任何新想法,并帮助我解决第二个问题。我在第二个问题上完全无能为力......
使用一些示例代码或示例进行说明会有所帮助..
...谢谢
答案 0 :(得分:2)
所有未配对用户的哈希表,key =用户属性。
当使用输入并被赋予属性时,在哈希中查找他。
如果找到,那么他就配对了。从哈希中删除第二个(配对用户)使用 不要仅将输入的用户添加到哈希值。
如果没有找到,请将他添加到哈希(他正在试探他的一对)。
完成