一 题目描述
给定一个string数组article(由单词构成)和数组中元素的个数n,同时给定数组中的两个单词x和y。请返回这两个单词的最短距离(比如两个单词分别在第1和第3个位置,则最短距离为2)。保证两个单词不相同且均在数组中出现,同时保证数组中单词数小于等于1000
二 题解
暴力法:
class Distance {
public:
int getDistance(vector<string> article, int n, string x, string y) {
int min_diff = n-1, x_index, y_index; //将最短距离初始为n-1
for(int i=0; i<n; i++){
if(article[i] == x){//找到x
x_index = i;
for(int j=0; j<n; j++){
if(article[j] == y){//找到y
if(min_diff > abs(j-i)) min_diff = abs(j-i); //计算x与y的绝对距离,比较得到最短距离
}
}
}
}
return min_diff;
}
};