题解 | #打印极值点下标#
打印极值点下标
https://www.nowcoder.com/practice/7fd72f8ac7964ba3b8baa8735246e1f1
#include <iostream> #include <sstream> #include <vector> #include <string> using namespace std; int main() { int k,i=0; string str1; string str; stringstream ss; vector<int> num; int number; while(getline(cin,str1)){ k=stoi(str1); getline(cin,str); ss.str(""); ss.clear(); ss.str(str); while(ss>>number){ num.push_back(number); } if(num[0]!=num[1]){cout<<0<<" ";} for(int i=1;i<num.size()-1;i++){ if(num[i-1]>num[i]&&num[i+1]>num[i]){ cout<<i<<" "; } if(num[i-1]<num[i]&&num[i+1]<num[i]){ cout<<i<<" "; } } if(num[k-2]!=num[k-1]){cout<<k-1<<" ";} cout<<endl; num.clear(); } }