Я пытаюсь решить проблему, в которой мне нужно сохранить значения в векторе и отобразить минимальные и максимальные значения. Но минимальные и максимальные значения, которые я получаю при использовании * min_element и * max_element, на на больше фактических значений.
Но когда я использую a для l oop до этого вот так:
for(int possibility: posibilities);
Я получаю актуальные значения! Почему это происходит? Я ничего не делаю внутри for l oop, и все же это единственное, что влияет на окончательный результат.
Использование ввода как:
3
2
3 6
3
1 3 5
5
1 2 5 6 7
Вот результат с и без для l oop:
Вот мой весь код:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int t;
cin >> t;
while(t--){
int n;
cin >> n;
int positions[n]; //Already sorted
for(int i = 0; i < n; i++){
cin >> positions[i];
}
int currentInfected = 1;
vector<int> possibilities;
for(int i = 0; i < n; i++){
for(int j = i; ((j <= n - i + 1) && (positions[j + 1] - positions[j] <= 2) ); j++){
//Check Forward
currentInfected++;
}
for(int j = i; ((j > 0) && (positions[j] - positions[j - 1] <= 2) ); j--){
//Check Backward
currentInfected++;
}
possibilities.push_back(currentInfected);
currentInfected = 1; //Reset to one
}
//SOMEHOW THIS KEEPS THE VALUE IN THE VECTOR STEADY
for(int possibility: possibilities);
cout << *min_element(possibilities.begin(), possibilities.end()) << " " << *max_element(possibilities.begin(), possibilities.end()) << endl;
}
return 0;
}
Компилятор: Я использую расширение VS Code под названием CompileRun . Глядя на его документы, я думаю, что он использует mingw для windows и g cc для Linux. CompileRun Github