1.比较简单
2.分析:因为题目说的是无论选择了哪个作为“pivot”, 都要能够“找到”
假设要找的是 X, 若 在X的左侧有一个大于 X 的Y 存在, 那么当选择 Y作为“pivot”时,Y的右边包括了X都要被舍弃了,这样就没办法找到X了,所以,为了能找到X,必须要求X比其左侧的都要大;同理,可以知道,必须要求X比其右侧的都要小
#include<iostream>
#include<vector>
using namespace std;
vector<int> v;
bool isMax(int index)
{
for(int i = 0; i < index; i++)
{
if(v[i] > v[index])
return false;
}
return true;
}
bool isMin(int index)
{
for(int i = index + 1; i < v.size(); i++)
{
if(v[i] < v[index])
return false;
}
return true;
}
int main()
{
int num;
while(cin >> num)
{
v.clear();
int temp;
while(num--)
{
cin >> temp;
v.push_back(temp);
}
int count = 0;
for(int i = 0; i < v.size(); i++)
{
if(isMax(i) && isMin(i))
count++;
}
cout << count << endl;
}
return 0;
}