这是我在 stackoverflow 上的第一篇文章。
我需要为金融应用程序提供算法建议。假设我们有 2 个这样的数字列表(是的,它们是银行交易):
List 1 | List 2
-------------------------------------
1000 | 200
7000 | 300
3000 | 10000
16000 | 500
| 16000
| 4100
考虑到一些条件,我需要将数字相互匹配:
匹配可以是一对一的、一对多的,甚至是多对多的。所以,这里两个 16000 匹配(一对一),列表 1 中的 1000 匹配列表 2 中的 200+300+500(一对三),列表 2 中的 10000 匹配列表 1 中的 7000+3000(一- to-two),依此类推。
一个人物可以在不止一场比赛中使用。
两个列表中的数字数量可能相等,也可能不相等。
一对多匹配中的最大图形数应该是可设置的。
多对多匹配不是必须的。但如果我们也有它们那就太好了!
有些数字可能无法匹配。没关系。
我正在做的是使用两个复杂的嵌套循环。它有效,但随着数字数量或每场比赛中允许的最大数字数量的增加,需要很长时间才能完成!
有没有更好的算法来做到这一点?