打印极值点下标

注意边界0和n-1

#include<bits/stdc++.h>
using namespace std;
const int maxn=100;
int arr[maxn];
int main(){
	int n;
	while(cin>>n){
		vector<int> ans;
		for(int i=0; i < n; i++){
			cin>>arr[i];
		}
		if(arr[0] > arr[1] ||arr[0] < arr[1]) ans.push_back(0);
		for(int i = 1; i < n-1; i++){
			if(arr[i] > arr[i-1] && arr[i] > arr[i+1]) ans.push_back(i);
			if(arr[i] < arr[i-1] && arr[i] < arr[i+1]) ans.push_back(i);
		}
		if(arr[n-1] > arr[n-2] ||arr[n-1] < arr[n-2]) ans.push_back(n-1);
		for(int i=0; i < ans.size(); i++){
			cout<<ans[i];
			if(i!=ans.size()-1) cout<<" ";
			else cout<<endl;
		}
	}
	
	
	
	return 0;
}
全部评论

相关推荐

07-23 12:04
门头沟学院 Java
现在是很缺人吗
码农索隆:缺分母,不缺分子,这样好作为炫耀的资本
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-02 22:46
门头沟学院 Java
码农索隆:hr:“管你投没投,先挂了再说”
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务