题解 | #打印极值点下标#

打印极值点下标

https://www.nowcoder.com/practice/7fd72f8ac7964ba3b8baa8735246e1f1

#include<cstdio>
#include<vector>
using namespace std;
int main(){
	int n;
	while (scanf("%d", &n) != EOF){
		vector<int> vec;
		vector<int>ans;
		for (int i = 0; i < n; i++){
			int q;
			scanf("%d", &q);
			vec.push_back(q);
		}
		if (vec[0] != vec[1]){
			ans.push_back(0);
		}
		for (int i = 1; i < vec.size()-1; i++){
			if (vec[i]<vec[i - 1] && vec[i]<vec[i + 1] || vec[i]>vec[i - 1] && vec[i]>vec[i + 1]){
				ans.push_back(i);
			}
		}
		if (vec[vec.size()-2] != vec[vec.size()-1]){
			ans.push_back(vec.size()-1);
		}
		printf("%d", ans[0]); 
		if (ans.size()>1){
			for (int i = 1; i < ans.size(); i++){
				printf(" %d", ans[i]);
			}
		}
		printf("\n");
	}
}

全部评论

相关推荐

字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务