在一个基于棋盘的游戏DFS(深度优先搜索)算法中,我设计了一个用于分数比较的解决方案对象,例如
class Solution {
double score;
int currentPosition;
byte[] board;
}我们可以根据分数按Comparator<Solution>对List<Solution>进行快速排序。
但是再试一试,如果我们想要在深度搜索中控制内存的使用,我们必须做去重。
相同的板和相同的currentPosition发生重复,只留下得分最高的,去掉其他的。
那么,在Java中有没有好的算法,可以同时对对象的不同属性进行去重和分数排序呢?
发布于 2016-06-01 14:53:46
也许你可以重写equals和hashCode,并将它们放在一个集合中,这样就根本不会添加重复的东西。
一个很好的例子可以在:http://g-liu.com/blog/2014/10/implementing-custom-duplicate-detection-with-linkedhashset/找到
https://stackoverflow.com/questions/37561225
复制相似问题