返回首页 返回题库

山之谷

C++ 简单 GESP四级真题 #二维遍历

题目描述

题面描述

现有一片山地,可以视为一个 行 列的网格图,第 行 列的海拔为 。

如果一个单元格的海拔不高于其所有相邻单元格(相邻包括上、下、左、右、左上、右上、左下、右下,最多8个方向)的海拔,则称该单元格为山谷。

请你数一数该片山地中有多少山谷。

输入格式

第一行包含2个整数 ,表示山地的大小。

之后 行,每行包含 个整数 ,表示海拔。

输出格式

输出1行,包含1个整数 ,表示山谷的数量。

样例1

输入:

3 5
7 6 6 7 9
6 5 6 7 6
6 5 7 8 9

输出:

3

样例解释

样例1中绿色单元格代表山谷:

数据范围

保证 ,。

时间限制

1.0 s

内存限制

512.0 MB

💡 查看提示(先自己想一想再看)
核心考察二维数组遍历、8方向相邻元素判断、边界处理。解题思路:遍历每个单元格,检查其8个相邻方向的海拔,若当前单元格海拔都不高于相邻单元格则计数加1。可通过给网格周围设置一个极大值的虚拟边界,避免边界判断的复杂逻辑。易错点:容易遗漏8个方向中的某几个,或者边界元素的相邻判断出错。
⚙ 开始做这道题 0 人做过 · 0 收藏 · 15 浏览

讨论(0)