我手头有问题。只是想弄清楚是否有更好的解决方案。
所以我想说我有一些键值对:
[
1234 : 43,
2134 : 12,
6543 : 89,
213 : 45
]
现在我想在随机子集中查询它们并想要最小的关联值。
例如:输入: {1234,2134,213} - > 12
{6543,213} - > 45 ...
我的一个解决方案是将初始数据存储在地图中并迭代给定的输入并获得最小值。
有更好的方法吗?
答案 0 :(得分:0)
将您的子集存储在地图中会强制您查找每个值以找到最小值。
您可以将子集存储在按键数组中,按值排序,并在固定时间内访问每个子集的最小值。
如果您首先对数据进行排序,并且根据您决定如何构建子集,则可能会产生n.log(n)
初始成本以及构建子集的成本,同时负责维护订购的元素。