【问题】
1、有 1001 个数字串(每个数字串长度不等,都是 0~9 之内),每一个数字串都和另外 1000 个中找出相同数最多和不同数最多的数字串(等于 1001 个数字数字串都要找一次)
2、就是如果第 1 行和第 1001 行都含有 1,算是相同数有 1 个;如果只有第 1 行数字串含有 1,而第 1001 行数字串没有,算是不同数有 1 个;
3、在数据库中用最少的步骤实现;
4、由于 1001 个数字串会每 3 分钟更新一次,因此要最快或者最少的步骤完成;
5、如果 1001 个成倍增长,变成 2001 个、7001 个,可以同样算法么?
【回答】
提问者需要逐条比较所有 1000 条字符串,甚至更多。用 Mongodb 没有提供这么复杂的运算,只能把数据读出来再处理,但用 Java 硬写比较麻烦,可以试试用集算器来处理,代码要简单些:
A |
B |