package commonlyalgorithm.greedalgorithm;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
public class GreedAlgorithm {
public static void main(String[] args) {
Map<String , HashSet<String>> radioStation = new HashMap<>();
HashSet<String> nameSet1 = new HashSet<>();
nameSet1.add("北京");
nameSet1.add("上海");
nameSet1.add("天津");
HashSet<String> nameSet2 = new HashSet<>();
nameSet2.add("广州");
nameSet2.add("北京");
nameSet2.add("深圳");
HashSet<String> nameSet3 = new HashSet<>();
nameSet3.add("成都");
nameSet3.add("上海");
nameSet3.add("杭州");
HashSet<String> nameSet4 = new HashSet<>();
nameSet4.add("上海");
nameSet4.add("天津");
HashSet<String> nameSet5 = new HashSet<>();
nameSet5.add("杭州");
nameSet5.add("大连");
radioStation.put("K1" , nameSet1);
radioStation.put("K2" , nameSet2);
radioStation.put("K3" , nameSet3);
radioStation.put("K4" , nameSet4);
radioStation.put("K5" , nameSet5);
HashSet<String> allArea = new HashSet<>();
allArea.add("北京");
allArea.add("上海");
allArea.add("天津");
allArea.add("广州");
allArea.add("深圳");
allArea.add("成都");
allArea.add("杭州");
allArea.add("大连");
ArrayList<String> selectedList = new ArrayList<>();
HashSet<String> tempSet = new HashSet<>();
String maxKey = null;
while (allArea.size() != 0){
maxKey = null;
for (String key : radioStation.keySet()) {
tempSet.clear();
HashSet areas = radioStation.get(key);
tempSet.addAll(areas);
tempSet.retainAll(allArea);
if(tempSet.size() > 0 && (maxKey == null || tempSet.size() > radioStation.get(maxKey).size())){
maxKey = key;
}
}
if(maxKey != null){
selectedList.add(maxKey);
allArea.removeAll(radioStation.get(maxKey));
}
}
System.out.println("结果为: " + selectedList);
}
}