迴圈
輸入
尋找山地或高原的可能點
若是山地(相對極大)
則ans+1
若不是
則往後找,看看是否真是高原
是
則ans+1
但要注意邊界
輸出ans
PS:
因為即使是高原,最左邊的點也得高於前一個
所以對於前一個數字,不用考慮等號
#include <iostream>
#define N 10010
using namespace std;
int main()
{
int n;
int mountain[N];
int ans;
while(cin >> n)
{
for(int i = 0; i<n; i++)
cin >> mountain[i];
ans = 0;
for(int i = 1; i<n-1; i++)
if(mountain[i] > mountain[i-1] && mountain[i] >= mountain[i+1])
{
if(mountain[i] > mountain[i-1] && mountain[i] > mountain[i+1])
ans++;
else
{
while(mountain[i] == mountain[i+1] && i<n)i++;
if(mountain[i] > mountain[i+1] && i < n-1)
ans++;
}
}
cout << ans << endl;
}
return 0;
}
留言列表