/*输出波峰波谷
*/
void printArrPeakValley(const int* arr, int len )
{
//
vector<int> iv(arr,arr+len);
vector<int> result;
result.push_back(iv[0]);
int temp=iv[0];
int maxDis=iv[0];
vector<int>::size_type i=1;
int flag=0;
for(;i<iv.size();)
{
while(i<iv.size() && temp == iv[i] )
{
flag=0;
i++;
}
while(i<iv.size() && temp < iv[i] )
{
flag=1;//递增标记
temp=iv[i];
i++;
}
if(flag==1)
{
result.push_back(iv[--i]);
i++;
}
while(i<iv.size() && temp > iv[i])
{
flag=2;//递减标记
temp=iv[i];
i++;
}
if(flag==2)
{
result.push_back(iv[--i]);
i++;
}
}
for(vector<int>::size_type j=0; j<result.size(); j++)
cout << result[j] << " ";
}