阿華很喜歡爬山,在爬山的過程中都會攜帶高度計,該高度計每一分鐘會記錄一次,有一次阿華到郊外爬爬小山坡,到處走走,記錄了很多高度,回家之後想計算自己到底爬了幾座小山頭。現在阿華將高度計記錄的數字給你,請你計算阿華爬了幾座小山頭。
所謂小山頭是指該高度比前一個和後一個都高,第一個與最後一個高度不考慮其為小山頭。
例如:
1 2 3 4 2 4 為只有一個山頭4。但是有時會遇到高原,仍然算是一個山頭。
1 2 3 4 4 3 2 1,此時也是只有一個山頭 4 4。
1 1 2 2 3 3,算沒有山頭
1 2 3 3 2 2 3 3 3,算一個山頭 3 3
輸入一個整數n,及n 個海拔高度,整數之間有一空白。
輸出阿華爬了幾個小山頭。
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n = 0, tmp = 0, total = 0, size = 0;
vector<int> v_hill;
cin >> n;
cin >> tmp;
v_hill.push_back(tmp);
for (int i = 1; i < n; i++) {
cin >> tmp;
if (tmp == v_hill.back()) {
continue;
}
else {
v_hill.push_back(tmp);
}
}
size = v_hill.size();
for (int i = 1; i < size - 1; i++) {
if (v_hill[i] > v_hill[i - 1] and v_hill[i] > v_hill[i + 1]) {
total++;
}
}
cout << total;
return 0;
}
APCS
C++