题目描述
一组数,分别表示地平线的高度变化。高度值为整数,相邻高度用直线连接。找出并统计有多少个可能积水的低洼地?
如图:地高变化为 0 1 0 2 1 2 0 0 2 0
输入格式
两行,第一行n,表示有n个数。第2行连续n个数表示地平线高度变化的数据,保证首尾为0。(3<=n<=10000,0<=高度<=1000)
输出格式
一个数,可能积水低洼地的数目。
输入输出样例
输入 #1复制
10
0 1 0 2 1 2 0 0 2 0
输出 #1复制
3
#include <iostream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include <algorithm>
#include <set>
#include <map>
#include <climits>
using namespace std;
int main(int argc, char const *argv[])
{
/* code */
int n;
cin >> n;
vector<int> nums(n);
for(int i = 0; i < n; i++)
{
cin >> nums[i];
}
int count = 0;
int flag = 0;
for(int i = 1; i < n-1; i++)
{
if(nums[i] < nums[i-1])
{
//找到一个下降沿
flag = 1;
}
else if(nums[i] > nums[i-1])
{
if(flag == 1)
{
count++;
}
flag = 0;
}
}
cout << count << endl;
return 0;
}