/*输出波峰波谷 */ 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] << " "; }
转载于:https://www.cnblogs.com/zjhnl/archive/2012/09/29/2707962.html