题解 | #某云ES倒排索引#
某云ES倒排索引
https://www.nowcoder.com/practice/7ba676741a3c4920b7846476be520779
如下
public ArrayList<Integer> invertedIndex(ArrayList<Integer> ID, ArrayList<String> content, String word) {
Map<String, ArrayList> indexMap = new HashMap<>();
for (int i = 0; i < content.size(); i++) {
int index = ID.get(i);
String[] s = content.get(i).split(" ");
for (String s1 : s) {
ArrayList<Integer> list = new ArrayList<>();
if (indexMap.containsKey(s1)) { //之前有
list = indexMap.get(s1);
if (!list.contains(index)) {
list.add(index);
}
}else {
list.add(index);
}
indexMap.put(s1, list);
}
}
if (indexMap.containsKey(word)) {
return indexMap.get(word);
}
return new ArrayList<>();
}
查看30道真题和解析