c199: 爬山去

題目:

阿華很喜歡爬山,在爬山的過程中都會攜帶高度計,該高度計每一分鐘會記錄一次,有一次阿華到郊外爬爬小山坡,到處走走,記錄了很多高度,回家之後想計算自己到底爬了幾座小山頭。現在阿華將高度計記錄的數字給你,請你計算阿華爬了幾座小山頭。

所謂小山頭是指該高度比前一個和後一個都高,第一個與最後一個高度不考慮其為小山頭。

例如:
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 個海拔高度,整數之間有一空白。

輸出阿華爬了幾個小山頭。

C++ Code:

#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; }

tags: APCS C++