栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++ 模拟题七题训练(第二题)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++ 模拟题七题训练(第二题)

题目描述

如果一个序列a存在一个下标,该下标左边和右边都比该数小,把该下标称之为k,则a[1]<=a[2]<=...a[k]>=..a[n-2]>=a[n-1]>=a[n],k则被称为该序列的顶,该序列被称为‘峰’。

现在给你一个序列a,保证a是一个‘峰’,请你输出它的顶.

1n10000.

#include
using namespace std;
int n,a[10005],mid=-1;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	int l=1,r=n;
	while(l=a[md-1]&&a[md]>=a[md+1]){
			mid=md;
			break;
		}
		else if(a[md]>=a[md-1]&&a[md]<=a[md+1]) l=md;
		else r=md;
	}
	printf("%d",mid);
	return 0;
}

难度加大

请你判断该序列是不是一个‘峰’,如果是,输出顶;否则,输出-1.

#include
using namespace std;
int n,a[10005],mid=-1;
void solve(){
	int l=1,r=n;
	while(l=a[md-1]&&a[md]>=a[md+1]){
			mid=md;
			break;
		}
		else if(a[md]>=a[md-1]&&a[md]<=a[md+1]) l=md;
		else r=md;
	}
	printf("%d",mid);	
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++) scanf("%d",&a[i]);
	int p=1;
	while(a[p]<=a[p+1]) p++;
	while(a[p]>=a[p+1]&&p 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384468.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号