题目描述
编程计算由“*”号围成的下列图形的面积。面积计算方法是统计*号所围成的闭合曲线中水平线和垂直线交点的数目。如下图所示,在10*10的二维数组中,有“*”围住了15个点,因此面积为15。
输入
10×10的图形。
输出
输出面积。
样例输入
0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 0 0 0
0 0 0 0 1 0 0 1 0 0
0 0 0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 0 1 0
0 1 0 1 0 1 0 0 1 0
0 1 0 0 1 1 0 1 1 0
0 0 1 0 0 0 0 1 0 0
0 0 0 1 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 0
样例输出
15
题目要求我们计算被围起来的面积,通过观察我们不难发现只要通过两次遍历就能将不是被 ‘1’ 围起来的 ‘0’ 全部标记出来,将输入外层定义以前为‘-1’的数组,当‘0’的上,下,左或者右有‘-1’时将‘0’标记为‘-1’,所以我们只要通过对输入数据进行前后两次遍历就可以将不是被围起来的 ‘0’ 全部标记开,在进行一次扫描,记录最后剩的 ‘0’ 的个数就是要求的面积。
接下来代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|