思路:比较+存放最小(或大)值的中间变量和存放数组下标的变量。假设无重复元素。
#include <iostream>
#include <vector>
int indexOfMinElements(const std::vector<int> &colls){
int tmpMin = colls[0];
int index = 0;
for (int i = 1; i < colls.size(); ++i){
if (colls[i] < tmpMin){
tmpMin = colls[i];
index = i;
}
}
return index;
}
int indexOfMaxElements(const std::vector<int> &colls){
int tmpMin = colls[0];
int index = 0;
for (int i = 1; i < colls.size(); ++i){
if (colls[i] > tmpMin){
tmpMin = colls[i];
index = i;
}
}
return index;
}
void main(){
std::vector<int> colls = { 122, 34, 4, 5, 6, 2, 3, 1, 5, 7, 8, 111 };
// 最大数和最小数的 距离
std::cout << indexOfMaxElements(colls) - indexOfMinElements(colls);
std::cin.get();
}