Leetcode200. 岛屿数量(HOT100)

server/2024/11/29 2:06:08/

链接

代码:

class Solution {
public:int dx[4] = {0,1,-1,0},dy[4] = {1,0,0,-1};vector<vector<char>> g;int numIslands(vector<vector<char>>& grid) {g = grid;int cnt = 0;for(int i = 0;i<g.size();i++){for(int j = 0;j<g[i].size();j++){//g[i].size() rather than g[0].size()if(g[i][j]=='1'){dfs(i,j);cnt++;}}}return cnt;}void dfs(int x,int y){//not int i,int y 否则会和内层for循环中的i冲突g[x][y] = '0';for(int i = 0;i<4;i++){int a = x+dx[i],b = y+dy[i];if(a>=0 && b>=0 && a<g.size() && b<g[a].size() //not a<=g.size() && b<=g[i].size()&& g[a][b]=='1')//g[i].size() rather than g[0].size()dfs(a,b);}}
};

这是flood fill算法经典应用。但是写的时候还是漏洞百出。 

遍历整个vector,遇到'0'跳过,遇到'1'则深入下去直接把包括这个'1'在内的往四个方向扩展的岛屿全部遍历完,并标记为'0'。这一趟下去表明发现了一个岛屿,我们在dfs之后cnt++。

在dfs中,我们先将当前位置标记,然后计算四个方向的坐标,坐标如果合法,我们便深入遍历,在下一层dfs中,将那个坐标标记为'0'........


http://www.ppmy.cn/server/145786.html

相关文章

[蓝桥杯 2021 省 AB2] 小平方

题目描述 小蓝发现&#xff0c;对于一个正整数 nn 和一个小于 nn 的正整数 vv&#xff0c;将 vv 平方后对 nn 取余可能小于 nn 的一半&#xff0c;也可能大于等于 nn 的一半。 请问&#xff0c;在 11 到 n−1n−1 中, 有多少个数平方后除以 nn 的余数小于 nn 的一半。 例如&…

BC-Linux8.6上面手动安装Postgresql17(Docker版)

目标 在BC-Linux的Docker上面手动运行postgresql17容器。 步骤 pg离线镜像文件 # 拉取得pg17 x86_64离线镜像 docker pull --platform linux/amd64 postgres:17-alpine3.20 # 保存pg17离线镜像文件 docker save -o postgres17.tar postgrespg自定义配置文件 # 获取默认配置…

c++(斗罗大陆)

这次&#xff0c;作者编了斗罗大陆的武魂、魂力等级&#xff0c;目前只写到了11级 #include<iostream> #include<conio.h> #include<windows.h> #include<stdlib.h> #include<stdio.h> #include<time.h> #include<strin…

[高阶数据结构四] 初始图论

1.前言 本篇着重讲解图的相关知识&#xff0c;大家跟随我的脚步往下阅读。 本章重点&#xff1a; 本章着重讲解图的基本知识&#xff0c;图的存储结构&#xff1a;邻接矩阵&#xff0c;邻接表以及图的模拟实现 2.图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构…

第十六届蓝桥杯模拟赛第二期题解—Java

第十六届蓝桥杯模拟赛/校赛第二期个人题解&#xff0c;有错误的地方欢迎各位大佬指正 问题一(填空题) 【问题描述】 如果一个数 p 是个质数&#xff0c;同时又是整数 a 的约数&#xff0c;则 p 称为 a 的一个质因数。 请问&#xff0c; 2024 的最大的质因数是多少&#xff1f; …

react16为啥要更改生命周期

react16对render方法也做了改进&#xff0c;16之前必须返回单个元素&#xff0c;16允许我们返回元素数组和字符串 getDerivedStateFromProps其实不是ComponentWillMout的替代品&#xff0c;有且只有一个用途&#xff0c;使用props来派生、更新state&#xff0c;这个钩子函数在…

从0开始深度学习(33)——循环神经网络的简洁实现

本章使用Pytorch的API实现RNN上的语言模型训练 0 导入库 import torch import torch.nn as nn import torch.nn.functional as F from torch.utils.data import Dataset, DataLoader from collections import Counter import re import math from tqdm import tqdm1 准备数据 …

etcd、kube-apiserver、kube-controller-manager和kube-scheduler有什么区别

在我们部署K8S集群的时候 初始化master节点之后&#xff08;在master上面执行这条初始化命令&#xff09; kubeadm init --apiserver-advertise-address10.0.1.176 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --service…