已经有一段时间了,我很难在一个我要做的算法上下功夫。表中存储了具有不同配置的对象的列表。
可以有m种不同类型的配置,例如a、b、c等。
每种类型的配置都可以有子类型
Object,Parent Configuration,Configuration,Rank
O1, A, A1, 1
O2, A, A2, 2
O3, A, A3, 3
O4, B, B1, 4
O5, B, B2, 5
O6, B, C1, 6
O7, C, C2, 7
给定一个用户,该用户希望n个对象具有按等级排列的指定配置中的任意配置,以便最大可能没有不同的对象配置,例如:
如果n==3,配置用户感兴趣的是a1、a2、b1、b2、c1、c2
然后一个普通的sql查询
SELECT *
FROM table
WHERE configuration IN ( a1, a2, b1, b2,
c1, c2 )
ORDER BY rank
LIMIT 3;
然后输出对象o1、o2和o3,因为它们的秩是最高的,但最佳的解决方案是返回对象o1、o4、o6作为每个父配置的最高秩对象,
假设在上面的示例中n==4,那么输出将是o1、o4、o6和o2,因为我们已经用尽了所有不同类型的配置,所以我们再次返回顶级对象。
有什么帮助吗?
暂无答案!
目前还没有任何答案,快来回答吧!