周围区域问题

来源:互联网 发布:linux 寄存器访问 编辑:程序博客网 时间:2024/04/28 04:41

本总结是是个人为防止遗忘而作,不得转载和商用。

题目

         给定M×N的二维平面,格点处要么是‘X’,要么是‘O’。将完全由‘X’围成的区域中的‘O’替换成‘X’。

         假定数据是4连通。

         如:

                  

思路解析

         反向思索最简单:哪些‘O’是应该保留的?

         因此从上下左右四个边界往里走,凡是能碰到的‘O’,都是跟边界接壤的,应该保留。

         于是对于每一个边界上的‘O’作为起点,做若干次广度优先搜索,对于碰到的‘O’,标记为其他某字符Y;

         最后遍历一遍整个地图,把所有的Y恢复成‘O’,把所有现有的‘O’都改成‘X’。

0 0
原创粉丝点击