所以我有一个程序,应该根据输入的信息来匹配保姆。双方的所有信息都保存在链接列表中。是否可以将来自保姆链接列表的数据与父链接列表进行匹配?而且也使它输出类似“__可能匹配你”在两个不同的链接列表中匹配数据
回答
如果你没有太多的数据,解决问题的简单,但效率不高的方式是:
boolean matches(Person person, BabySitter babySitter) {
// implement a logic that returns whether babySitter and person match
return person.getNumberOfChildren() <= babySitter.getMaximumNumberOfChildren() &&
babySitter.getWorkingDays().containsAll(person.needsBabySitterForDays());
}
for (Person person: people) {
for (BabySitter babySitter: babySitters) {
if (matches(person, babySitter)) {
System.out.println("Babysitter " + babySitter + " is recommended to " + person);
}
}
}
上述算法需要O( b * p)时间,其中b =保姆人数,p =人数。所以对于大b和p来说,它很慢。
基于matches
的逻辑,您可以通过反向索引获得接近O(b + p)的解。所以如果你有10,000个保姆和10,000个人,这个优化的解决方案会运行得非常快,而上面的算法需要几秒钟。
你应该在内部循环中加入一个'break'语句。一旦找到匹配项,就不需要继续搜索。 – Barmar
@Barmar从OP中不清楚,预计是否有单个或多个建议。 –
这将是匹配的孩子数量和你需要的婴儿坐在一周的日子你可以照顾的孩子的数量和一周的工作日数量 –
- 1. 匹配来自两个不同表的两个不同的列
- 2. 连接两个表由两列,其中的数据类型不匹配
- 3. 匹配两个不同表中的ID
- 4. TSQL链接数据分成匹配和不匹配的表
- 5. 匹配来自不同行数的两个表的数据
- 6. 在两个列表中发现不同的匹配<string>
- 7. 在两个不同的数据框中匹配的日期
- 8. 从同一个表中选择,其中两列匹配,第三个不匹配
- 9. 在C#中使用不匹配的数据连接两个DataTable
- 10. 最大匹配数。在两个列表
- 11. 匹配两个不等长的列表
- 12. 加入两个表时,在两列中的值不匹配
- 13. 在两列中匹配数据
- 14. 在两个不同的数字上匹配int列
- 15. 匹配两个不同数据库中的唯一ID
- 16. 比较来自2个不同表格的匹配列数据
- 17. 匹配两个列表在Python与同一指数无
- 18. 将两个不同类型的列表链接在一起
- 19. 从mysql中的两个相同表中找到不匹配的数据
- 20. 匹配数据库中的两列
- 21. 两个列表中的匹配值scala
- 22. 如何在拼接中链接两个不同的仪表板
- 23. 匹配两个不同工作表中的列并返回多个列[Excel]
- 24. 两个选定表格或查询中的列数不匹配
- 25. 得到两列的SUM链接到不同的表同一列
- 26. 链接三个表并查找与要求匹配的数据
- 27. 不同列表中的元素匹配
- 28. 在两个不同列中匹配内容-MySQL
- 29. 匹配在Excel VBA中的两个数据列表,并导出到新表
- 30. 搜索链接列表匹配
Java还是Javascript?他们不一样,甚至是相关的。 – Barmar
它的Java我认为它自动添加标签或东西 –
这取决于你的意思是“匹配”。它也很大程度上取决于数据如何存储在链接列表中。 – Daniel