algorithm - 在所有选项中获得最少的金额
问题描述
任何人都可以参考可以执行以下操作的已知算法,而无需对桌面上的所有选项进行暴力破解;该表有列:id、数量、来源和创建日期用户输入一组 id,算法应返回最后一行的所有来源中的最小数量(基于创建日期)
例子:
(id) 1 On June 1st quantity was 9 from Source A
2 On June 1st quantity was 5 from Source A
3 On June 1st quantity was 7 from Source A
1 On May 25th quantity was 6 from Source B
2 On May 25th quantity was 9 from Source B
3 On May 25th quantity was 10 from Source B
3 On May 1st quantity was 7 from Source A
1 On May 1st quantity was 6 from Source B
假设用户输入了一个包含 id 1 和 2 的集合,则来自源 A 的 id 1 和 2 的最新数量分别为 9 和 5,来自源 B 的最新数量为 6 和 9,因为 A 的总数少于所有其他来源,因此结果应该是 A(9)
我所做的并试图实现更好的解决方案:对于每个来源,循环输入的所有产品并获得总和,然后获得所有来源的最小值希望我正确解释了这个问题,任何人都可以提出一种算法或最快的方法来解决上述问题?
解决方案
预处理您的数据,使其更方便。创建由 (id,source) 形式的元组键控的字典,其值是该组合的最新数量。您将不得不进行一些循环来设置这样的字典,之后您将获得非常快速的求和,您所要做的就是对与目标子集中的 id 对应的值求和。在像 Python 这样对字典有很好支持的语言中,这将相当容易。
如果您将这些数据存储在 R 或 pandas 数据框之类的东西中,那么将会有更适合这些工具的解决方案。如果是这种情况,您可以提出一个正确标记的问题,其中包含可重现的示例数据框。
推荐阅读
- javascript - 如何在 component.ts 代码而不是 html 中编写 ngxs 异步可观察插值?
- java - ArrayList,用 CharAt 添加
- jquery - 必填字段验证的jQuery不起作用
- r - 将条件前后的行插入data.frame
- python - 在heroku中部署django项目时,在迁移中以10为基数的int()的valueerror无效文字
- java - 为什么 KeyListener 仅在未按下按钮时才起作用?
- xamarin - 在城市飞艇推送通知出现比 xamarin.forms 中的应用程序崩溃
- javascript - 在 Jquery 的 HTML 页面的第 4 段之后出现链接
- node.js - TestsNodejs - mocha 和 babel 中的编译器弃用
- android - 动画对象可以共享和重用吗?