最高的山峰-数组-难度2

12 篇文章 2 订阅

Description
给你一个n∗m的矩阵,已知每个单元格上的非负整数代表海拔高度,矩阵外的海拔高度默认为0。如果某个单元格的海拔高度皆大于与它相邻(上下左右四个方向)的单元格海拔高度, 那么该单元格为一个山峰,请你编程找出最高的山峰的高度。

Input
输入第一行为两个正整数
n和m,范围在[1,50]之内。接下来n行,每行m个数,代表海拔高度,范围在[0,10000]之内。

Output
输出海拔最高的山峰的高度,如果不存在,则输出−1。

Sample Input
1 2
4 3
3 3
1 2 5
1 3 2
0 0 1
2 2
1 1
1 1

Sample Output
4
5
-1

Hint
第一组样例为1∗2的矩阵,由于矩阵外海拔高度默认为0,因此仅包含一个山峰,在(0,0)处,海拔高度为4。
第二组样例为3∗3的矩阵,总共有2个山峰,分别在(0,2)和(1,1)处,海拔高度分别为5和3,因此最高的山峰高度为5。
第三组样例为2∗2的矩阵,不存在山峰,因此输出−1。

#include<stdio.h>
int main()
{
	int m, n, i, j,h=0,k=0;
	scanf("%d%d", &n, &m);
	int a[52][52] = {0};//我们在数组的边缘加了一圈0,这样就方便判断边线处的海拔高度是否满足
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= m; j++)
		{
			scanf("%d", &a[i][j]);
		}
	}
	
	for (i = 1; i <= n; i++)
	{
		for (j = 1; j <= m; j++)
		{
			
				if (a[i][j] > a[i][j - 1] && a[i][j] > a[i][j + 1] && a[i][j] > a[i + 1][j] && a[i][j] > a[i - 1][j])
				{
					if(a[i][j]>=h)
					{
						h = a[i][j];
						k = 1;//k是来判断有没有最高峰,有了最高峰就变值
					}
				}
				else if(k==0)
					h = -1;
			
		}
	}
	printf("%d", h);
	return 0;
}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会为你介绍Python数组。 在Python数组是一种存储元素的数据结构。与列表不同,数组是固定大小的,且元素类型必须相同。 要使用数组,需要先导入array模块。下面是一个创建数组的示例: ```python import array as arr # 创建一个整数类型的数组 a = arr.array('i', [1, 2, 3, 4, 5]) # 打印数组 print(a) ``` 在上面的示例,我们使用了`array`模块创建了一个整数类型的数组,并初始化了它。要注意的是,第一个参数是一个字符,用于指定数组元素的类型。在本例,我们使用了`i`,表示整数类型。 除了整数类型之外,还有其他类型可以使用,如`f`表示浮点数,`d`表示双精度浮点数,`b`表示布尔类型等。 在数组,可以使用索引来访问元素,如下所示: ```python import array as arr # 创建一个整数类型的数组 a = arr.array('i', [1, 2, 3, 4, 5]) # 访问数组的第一个元素 print(a[0]) # 修改数组的第二个元素 a[1] = 6 # 打印数组 print(a) ``` 在上面的示例,我们使用了索引`0`来访问数组的第一个元素,使用索引`1`来修改数组的第二个元素。 除了使用索引来访问和修改元素外,还可以使用循环来遍历数组的所有元素,如下所示: ```python import array as arr # 创建一个整数类型的数组 a = arr.array('i', [1, 2, 3, 4, 5]) # 遍历数组的所有元素 for i in a: print(i) ``` 在上面的示例,我们使用了`for`循环来遍历数组的所有元素,并打印每个元素的值。 这就是Python数组的基本用法。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值