查找集合中具有相同属性的项目

时间:2016-05-27 11:18:12

标签: algorithm

我有一个包含许多项目的集合。这些物品有一些属性但是在这种情况下,其中有2个是重要的; 可用优先级。可用是一个简单的bool属性,而优先级可以是1到100之间的任何数字。我需要实现的是找到n个顺序的项目,其中所有项目都是可用的(== true)并具有相同的优先级。 我不仅限于使用该集合,这意味着我可以创建其他数据结构来加速查找过程(如显示项目状态的字节数组,如:101010001)。

如果我需要稍微想象一下:

1 [99],0 [80],1 [60],1 [60],0 [60]

1和0显示可用性,括号中的数字显示优先级。我需要找到第3和第4项。

实施此类算法的最快方法是什么?

注意:这当然不是一个家庭作业问题。

编辑:我无法更改商品的顺序,也不会从商品中删除部分商品。

1 个答案:

答案 0 :(得分:0)

只需使用HashMap即可将元素存储为true。 HashMap的键将是优先级,值将是其出现次数。

最后打印出那些value > 1

的密钥

因此,您可以在O(n)时间复杂度中完成此操作,其中n是元素的总数。