博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 130 Surrounded regions
阅读量:3897 次
发布时间:2019-05-23

本文共 865 字,大约阅读时间需要 2 分钟。

题目的描述在这里插入图片描述

大致意思就是把被x包围的0全都变成x,难点是在于,怎么判断这个点被x所包围呢

太机智了,这个up给了一个思路:从四条边上开始判断,找到0的位置,然后把这个位置的0开始遍历,并做标记,然后遍历全部的图,把没有被标记的,并且值为0 的数变成1。

要主要这个是伪代码。。。只是给 了全部的思路,还没有完善

#include
#include
#include
#include
#include
#include
using namespace std;//从四条边上开始判断,找到0的位置,然后把这个位置的0开始遍历,并做标记,然后遍历全部的图,把没有被标记的,并且值为0 的数变成1。int A[4]={ 0,0,1,-1};int B[4]={ 1,-1,0,0};//对于dfs方法很简单,就是判断这个位置是不是0,如果是的话,就把这个位置标记设置一下。然后遍历他的周围//这个判断函数可写可不写bool juege(int x,int y){ if(x<0||x>=m||y<0||y>=m) return false;//越界 if(map[x][y]='0'&&!visted[x][y]) return true; else return false;}void DFS(int x,int y){ if(map[x][y]=='0'){ flag=true;//这个是用来判断它是不是被0出去,并且被标记的 visted[x][y]=true;//这个是用来判断有没有被访问过 for(int i=0;i<4;i++){ int w=x+A[i]; int z=y+B[i]; if(juege(w,z))//如果他可以访问的话 DFS(w,z); } }}void vis(){ //这个方法就是用来把从四个边界出去的,全部都遍历过 int i,j; for(i=0,j=0;i

转载地址:http://hufen.baihongyu.com/

你可能感兴趣的文章
智能硬件开发如何选择低功耗MCU?
查看>>
阿里感悟(十)如何写好简历
查看>>
阿里感悟(十一)如何准备面试
查看>>
软件架构入门
查看>>
80 多个 Linux 系统管理员必备的监控工具
查看>>
OOD的原则
查看>>
Tool to trace local function calls in Linux
查看>>
Linux 下查询 DNS 服务器信息
查看>>
ulimit 里的 file size 的 block 单位是多少?
查看>>
linux下查看端口对应的进程
查看>>
将 gdb 用作函数跟踪器 (Function Tracer)
查看>>
原 GCC一些有用的技巧
查看>>
yum 变量追加的方法
查看>>
2倍速的下一代Bluetooth,「Bluetooth 5」发布
查看>>
Top 10 “Yum” installables to be productive as a developer on Red Hat Enterprise Linux
查看>>
[小技巧] Vim 如果去除 “existing swap file” 警告
查看>>
如何在linux下检测内存泄漏
查看>>
十年生聚,Vim 8.0 发布了!
查看>>
【演歌】加賀の女 歌词翻译
查看>>
東京音頭 (东京音头) 歌词翻译
查看>>