所以我有一个程序,应该根据输入的信息来匹配保姆。双方的所有信息都保存在链接列表中。是否可以将来自保姆链接列表的数据与父链接列表进行匹配?而且也使它输出类似“__可能匹配你”在两个不同的链接列表中匹配数据
回答
如果你没有太多的数据,解决问题的简单,但效率不高的方式是:
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. 连接两个表由两列,其中的数据类型不匹配
- 4. 匹配两个不同表中的ID
- 5. TSQL链接数据分成匹配和不匹配的表
- 6. QlikView的:匹配两个间接链接表中的列不起作用
- 7. 在两个不同的表中创建新的数据框与两个不同的表不匹配
- 8. 匹配两个不同阵列中值
- 9. 匹配来自不同行数的两个表的数据
- 10. 两个表中的不匹配列
- 11. 在两个列表中发现不同的匹配<string>
- 12. 在两个不同的数据框中匹配的日期
- 13. R:匹配不同数据框中的两列,输出倍数
- 14. 从同一个表中选择,其中两列匹配,第三个不匹配
- 15. 在C#中使用不匹配的数据连接两个DataTable
- 16. 最大匹配数。在两个列表
- 17. 加入两个表,其中数据在一列中匹配
- 18. 如果无数列表中的两个值相同,则匹配
- 19. 匹配两个不等长的列表
- 20. 加入两个表时,在两列中的值不匹配
- 21. 在两列中匹配数据
- 22. 在两个不同的数字上匹配int列
- 23. 提取值在两个不同的列中匹配在R
- 24. 匹配两个不同数据库中的唯一ID
- 25. 比较来自2个不同表格的匹配列数据
- 26. 从两个表中插入数据可能有匹配的列
- 27. 匹配两个列表在Python与同一指数无
- 28. 将两个不同类型的列表链接在一起
- 29. 从mysql中的两个相同表中找到不匹配的数据
- 30. 根据列在两个表中找到不匹配的数据并按行排列列数据
Java还是Javascript?他们不一样,甚至是相关的。 – Barmar
它的Java我认为它自动添加标签或东西 –
这取决于你的意思是“匹配”。它也很大程度上取决于数据如何存储在链接列表中。 – Daniel