-2
我有一个包含许多项目的集合。这些项目有一些属性,但让我们假设其中2个在这种情况下是重要的; 可用和优先。可用是一个简单的布尔属性,而优先级可以是1到100之间的任何数字。我需要实现的是找到n个顺序的项目,其中所有项目都是可用的(== true)并且具有相同的优先级。 我并不仅限于使用集合,这意味着我可以创建额外的数据结构来加速查找过程(如显示项目状态的字节数组,例如:101010001)。在集合中查找具有相同属性的项目
如果非要形象化有点:
1 [99],0 [80],1 [60],1 [60],0 [60]
1和0示出了可用性和括号中的数字显示优先级。我需要找到第三和第四项。
实现这种算法的最快方法是什么?
注意:这当然不是一个家庭作业问题。
编辑:我无法更改项目的顺序,既不从集合中删除某些项目。
将所有可用任务存储在单独的集合中并根据优先级进行排序? –
HashMap具有loopkup O(1)。不能说你可以比这更好。 – FallAndLearn
'这是顺序的 - 所以你不应该改变顺序? – MBo