public int getDistance(String[] article, int n, String x, String y) {
int xPos = -1;
int yPos = -1;
int ans = Integer.MAX_VALUE;
for (int i = 0; i < article.length; i++) {
if (x.equals(article[i])) {
xPos = i;
if (yPos != -1) {
ans = Math.min(ans, Math.abs(xPos - yPos));
}
}
if (y.equals(article[i])) {
yPos = i;
if (xPos != -1) {
ans = Math.min(ans, Math.abs(xPos - yPos));
}
}
}
return ans;
}
一般人想不到的进阶问题
问:如果查询的次数很多,如何把每次的查询的时间复杂度降为O(1)?
简答:使用内哈希表(哈希套哈希)。