代码随想录图论 第五天| 841.钥匙和房间 463. 岛屿的周长

代码随想录图论 第五天| 841.钥匙和房间

一、 841.钥匙和房间

题目链接:https://leetcode.cn/problems/keys-and-rooms/
思路:钥匙就是索引,遍历过就标记,每拿到一个房间的钥匙,直接for循环递归遍历,深度优先直接拿下。

class Solution {public boolean canVisitAllRooms(List<List<Integer>> rooms) {boolean[] visited = new boolean[rooms.size()];dfs(visited, rooms, 0);for (boolean b : visited) {if (b == false) return false;}return true;}void dfs(boolean[] visited, List<List<Integer>> rooms, int key) {if (visited[key]) return;visited[key] = true;List<Integer> list = rooms.get(key);for (Integer i : list) {dfs(visited, rooms, i);}}
}

二、463. 岛屿的周长

题目链接:https://leetcode.cn/problems/island-perimeter/
思路:常规思路,遍历每一个岛屿并且计算当前点的边长就可以。

class Solution {int sum = 0;public int islandPerimeter(int[][] grid) {for (int i = 0; i < grid.length; i++) {for (int j = 0; j < grid[0].length; j++) {if (grid[i][j] == 1) {dfs(grid, i, j);return sum;}}}return sum;}void dfs(int[][] grid, int x, int y) {if (x < 0 || x >= grid.length || y < 0 || y >= grid[0].length) {return;}if (grid[x][y] == 2 || grid[x][y] == 0) return;grid[x][y] = 2;if (x-1 < 0 || grid[x-1][y] == 0) sum++;if (x+1 >= grid.length || grid[x+1][y] == 0) sum++;if (y-1 < 0 || grid[x][y-1] == 0) sum++;if (y+1 >= grid[0].length || grid[x][y+1] == 0) sum++;dfs(grid, x-1, y);dfs(grid, x+1, y);dfs(grid, x, y-1);dfs(grid, x, y+1);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/126043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑入门:电脑专业英语500词,供新手参考

1. file n. 文件;v. 保存文件 2. command n. 命令,指令 3. use v. 使用,用途 4. program n. 程序 5. line n. (数据,程序)行,线路 6. if conj. 如果 7. display vt. 显示,显示器 8. set v. 设置,n. 集合 9. key n. 键,关键字,关键码 10. list n. 列表,显示,…

‘error:03000086:digital envelope routines::initialization“处理方法

1. 现象&#xff1a; opensslErrorStack: [ error:03000086:digital envelope routines::initialization error ],library: digital envelope routines,reason: unsupported,code: ERR_OSSL_EVP_UNSUPPORTED 2.解决方法 2.1 在packet.json中添加 set NODE_OPTIONS--openss…

2023 CSP-J题解

T1 小苹果 题目描述 理论分析 对于第一问&#xff0c;我们按照题意模拟每天取走的是多少个苹果即可。由于每天可以取走原来的,数据范围没次会降低到&#xff0c;也就是说这样的过程的时间复杂度可以用下式表示&#xff1a; 对于本题的数据范围n<1e9&#xff0c;这个时间复杂…

二叉树问题——平衡二叉树问题

摘要 本博文主要介绍平衡二叉树问题包括&#xff0c;二叉树的高度差&#xff0c;是否为平衡二叉树&#xff0c;有序链表转二叉搜索树&#xff0c;将二叉搜索树变平衡等。 一、平衡二叉树详解 1.1 判断二叉树是否平衡 /*** Definition for a binary tree node.* public class…

浅谈安科瑞无线测温产品在埃及某房建配电项目中的应用

1.电气接点测温的必要性 电力系统的一次系统一般由供电线路&#xff08;包括架空线路和电缆&#xff09;、变压器、母线、开关柜等电气设备组成。其相互之间存在大量的电气连接点&#xff0c;由于电流流过产生热量&#xff0c;所以几乎所有的电气故障都会导致故障点温度的变化…

js中如何将对象转换为数组

在 js中&#xff0c;你可以使用不同的方法将对象转换为数组&#xff0c;具体取决于对象的结构和你希望在数组中得到什么样的数据。以下是一些常见的方法&#xff1a; 1&#xff0c;Object.keys() 方法&#xff1a; 这种方法将对象的键转换为数组 const obj { a: 1, b: 2, c:…

cnpm windows系统安装后查看版本cnpm -v报错Error: Cannot find module ‘node:util‘

1、报错截图 2、原因 在网上查了一些资料&#xff0c;有的说配置环境变量就可以&#xff0c;但经过配置后发现还是会报错。又查到说是由于cnpm和npm的版本不一致导致的&#xff0c;最后尝试成功解决&#xff01;&#xff01;&#xff01; 2、解决办法 1、先卸载掉之前安装的c…

Stable Diffusion WebUI扩展openpose-editor如何使用

先上地址: GitHub - fkunn1326/openpose-editor: Openpose Editor for AUTOMATIC1111s stable-diffusion-webuiOpenpose Editor for AUTOMATIC1111s stable-diffusion-webui - GitHub - fkunn1326/openpose-editor: Openpose Editor for AUTOMATIC1111s stable-diffusion-webu…

apache seatunnel支持hive jdbc

上传hive jdbc包HiveJDBC42.jar到seatunel lib安装目录 原因是cloudera 实现了add batch方法 创建seatunnel任务文件mysql2hivejdbc.conf env {execution.parallelism = 2job.mode = "BATCH"checkpoint.interval = 10000 } source {Jdbc {url = "jdbc:mysql:/…

AWS认证考试的那些事

1 为啥会有这个认证 你既然点进来了这个也就不重要了&#xff0c;重要的是怎么拿到他&#xff0c;以SAA-C03为例&#xff0c;从开始到结束我们一起来进行准备 2 考试卷 目前AWS的考试是要交钱的&#xff0c;正常情况下拿到5折劵很容易&#xff0c;比如你之前考过AWS的认证会给…

Django实战项目-学习任务系统-兑换物品管理

接着上期代码框架&#xff0c;开发第5个功能&#xff0c;兑换物品管理&#xff0c;再增加一个学习兑换物品表&#xff0c;主要用来维护兑换物品&#xff0c;所需积分&#xff0c;物品状态等信息&#xff0c;还有一个积分流水表&#xff0c;完成任务奖励积分&#xff0c;兑换物品…

函数总结

一、main函数 //argc 统计命令行传参的个数 //argv 保存命令行传的具体参数,每个参数当做字符串来存储&#xff0c;const是为了不让main函数修改argv数组里的内容 1.1值传递 此为值传递;形参的值改变不影响实参的值 1.2 地址传递 形参拿到的是实参的地址&#xff0c;实际操…

okhttp post请求 header post参数加密遇到的两个问题

如果你对于网络请求用了https后是否还有必要对参数加密有疑问可以看我上篇的文章&#xff1a;网络安全https 记得耐心看完&#xff0c;下面说问题&#xff1a; Caused by: java.lang.IllegalArgumentException: Unexpected char 0x0a 一开始以为是okhttp框架对特殊字符做了现在…

modbusTCP【C#】

为了编写一个完整的Modbus TCP库&#xff0c;您需要遵循以下步骤&#xff1a; 1. 安装NModbus4库&#xff1a;NModbus4是一个用于C#的Modbus库&#xff0c;它支持串口和TCP通信。您可以通过NuGet包管理器安装它。 2. 创建Modbus主机&#xff1a;使用ModbusIpMaster.CreateIp方…

高效改名,文件夹名称替换:一键批量替换文件夹名中间部分内容

在我们的日常生活和工作中&#xff0c;经常需要处理大量的文件夹&#xff0c;其中有些文件夹名称可能包含我们需要替换的内容。但如果我们一个一个地手动修改文件夹名称&#xff0c;不仅耗时而且容易出错。为了解决这个问题&#xff0c;我们可以使用云炫文件管理器高效的文件夹…

[AUTOSAR][诊断管理][ECU][$2F] 通过ID控制IO

文章目录 一、简介服务功能功能描述应用场景服务请求请求格式控制参数(IOCP)请求实例服务响应响应格式正响应实例负响应NRC支持二、 示例代码2f_io_ctl_by_id.c一、简介 2F诊断服务主要在车身域比较常见,比如车窗控制,传感器开关、执行器控制等。 UDS诊断服务协议都以ISO标准…

Centos虚拟机安装配置与MobaXterm工具及Linux常用命令

目录 一、Centos操作系统 1.1 Centos介绍 1.2 Centos虚拟机安装 1.3 配置centos的镜像 1.4 虚拟机开机初始设置 1.4.1 查看网络配置 1.4.2 编辑网络配置 二、MobaXterm工具 2.1 MobaXterm介绍 2.2 MobaXterm安装 2.3 切换国内源 三、Linux常用命令和模式 3.1 …

【漏洞复现】CNVD-2023-08743

【漏洞复现】 CNVD-2023-08743 【漏洞介绍】 Hongjing Human Resource Management System - SQL Injection 【指纹】 title”人力资源信息管理系统” 【系统UI】 【payload】 /servlet/codesettree?flagc&status1&codesetid1&parentid-1&categories~31…

Word插入图片显示不全?学会这4个方法,轻松解决!

“为了让我的文档看起来更专业&#xff0c;我在Word里插入了一些图片&#xff0c;但是这些图片有些只显示了部分&#xff0c;有些都无法正常显示。有什么方法可以让图片显示齐全吗&#xff1f;” 在使用Word时&#xff0c;添加一些图片不仅会让我们的文档看起来更美观&#xff…

若依系统的数据导入功能设置

一、后端 Log(title "公交站牌", businessType BusinessType.IMPORT)PreAuthorize("ss.hasPermi(busStop:busStop:import)")PostMapping("/importData")public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exce…