计算积分奖励和退货的算法

时间:2016-10-30 15:55:26

标签: algorithm

我实施了一个点奖系统的算法,该算法应该计算每个人的得分。即:

  • 人A受邀人B;
  • 人员受邀人C;
  • B人邀请人D;
  • D人邀请了人E。

结果将是:

  • A人有12.5分(5分是因为受邀B和C,2.5分是因为B邀请了D);
  • B人得12.5分(因为受邀D而得5分);
  • B人得12.5分(因为受邀D而得5分);

编写此函数的适当算法是什么?我正在考虑使用Djikstra,但如果我正在编写一个函数来找到两个人之间的路径,那么Djikstra会很棒。

1 个答案:

答案 0 :(得分:1)

你需要的只是基本的递归,对吗?如果您的问题是" 得分最高"则更高级的算法会很有用。这种问题可以得到优化。

如果要处理批次数据,我建议您考虑通过添加累积积分缓存来对数据存储区进行反规范化。它可以让你每次都不得不咀嚼不断增加的数字。

首先选择深度或广度,然后尝试以内存不泄漏的方式编写代码(特别是堆栈溢出或不断增长的数组)。