当前位置: 首页 > news >正文

php网站开发论坛千锋教育的真实性

php网站开发论坛,千锋教育的真实性,太原网站优化推广,重庆巫溪网站建设目录 841.钥匙和房间 思路:本题是一个有向图搜索全路径的问题。 只能用深搜(DFS)或者广搜(BFS)来搜。 463. 岛屿的周长 841.钥匙和房间 力扣题目链接 (opens new window) 有 N 个房间,开始时你位于 0…

目录

841.钥匙和房间

思路:本题是一个有向图搜索全路径的问题。 只能用深搜(DFS)或者广搜(BFS)来搜。

463. 岛屿的周长


841.钥匙和房间

力扣题目链接

(opens new window)

有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,...,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。

在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,...,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。

最初,除 0 号房间外的其余所有房间都被锁住。

你可以自由地在房间之间来回走动。

如果能进入每个房间返回 true,否则返回 false。

示例 1:

  • 输入: [[1],[2],[3],[]]
  • 输出: true
  • 解释: 我们从 0 号房间开始,拿到钥匙 1。 之后我们去 1 号房间,拿到钥匙 2。 然后我们去 2 号房间,拿到钥匙 3。 最后我们去了 3 号房间。 由于我们能够进入每个房间,我们返回 true。

示例 2:

  • 输入:[[1,3],[3,0,1],[2],[0]]
  • 输出:false
  • 解释:我们不能进入 2 号房间。

思路:本题是一个有向图搜索全路径的问题。 只能用深搜(DFS)或者广搜(BFS)来搜。

//深度优先
class Solution {
public:
void dfs(vector<vector<int>>& rooms, int key, vector<bool>& visited){if(visited[key])return;visited[key]=true;vector<int>keys = rooms[key];for(int key: keys){dfs(rooms, key, visited);}}bool canVisitAllRooms(vector<vector<int>>& rooms) {vector<bool>visited(rooms.size(), false);dfs(rooms, 0, visited);for(int i : visited){if (i==false) return false;}return true;}
};

//广度优先版
class Solution {
public:bool bfs(vector<vector<int>>& rooms){vector<int>visited(rooms.size(),0);queue<int>que;visited[0]=1;//初始化,从第一个房间‘0’开始que.push(0);while(!que.empty()){int key =que.front();que.pop();vector<int>keys=rooms[key];for(int key: keys){if(!visited[key]){que.push(key);visited[key]=1;}}}for(int i:visited){if(!i)return false;}return true;}bool canVisitAllRooms(vector<vector<int>>& rooms) {return bfs(rooms);}
};

463. 岛屿的周长

力扣题目链接

给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域。

网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。

岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。

  • 输入:grid = [[0,1,0,0],[1,1,1,0],[0,1,0,0],[1,1,0,0]]
  • 输出:16
  • 解释:它的周长是上面图片中的 16 个黄色的边

示例 2:

  • 输入:grid = [[1]]
  • 输出:4

示例 3:

  • 输入:grid = [[1,0]]
  • 输出:4

思路:遍历地图,遇到岛屿,遍历其上下左右四个方向,如果遇到边界或者遇到水域(grid[nextx][nexty]=0),result++;

class Solution {
public:int dir[4][2] = {0, 1, 1, 0, 0, -1, -1, 0};int islandPerimeter(vector<vector<int>>& grid) {int result = 0;for (int i = 0; i < grid.size(); i++) {for (int j = 0; j < grid[0].size(); j++) {if (grid[i][j] == 1) {            // 遇到陆地for (int k = 0; k < 4; k++) { // 搜索各个方向int nextx = i + dir[k][0];int nexty = j + dir[k][1];if (nextx < 0 || nextx >= grid.size() || nexty < 0 ||nexty >= grid[0].size() ||grid[nextx][nexty] ==0) { // 遇到边界或者水域,周长++;result++;}}}}}return result;}
};

参考:代码随想录

http://www.hkea.cn/news/467541/

相关文章:

  • 腾讯云服务器可以做网站可以推广发广告的app
  • seo外链友情链接网站运营推广选择乐云seo
  • 做网站 要学 什么语言网站优化公司
  • 天乐测绘网做网站吗搜索引擎广告图片
  • 湖南营销型网站建设多少钱百度关键词优化软件网站
  • 怎样给网站做关键词优化百度词条
  • 做网站哪个平台搭建网站需要什么技术
  • 做gif图的网站简述网络营销的主要方法
  • 做图网站被告seo视频网页入口网站推广
  • 做的网站底部应该标注什么意思免费文案素材网站
  • 企业网站搜索引擎拓客农夫山泉软文300字
  • 青岛黄岛区网站开发武汉seo优化
  • 东莞做网站企业铭会员制营销
  • 做网站设计工资多少钱优化教程网官网
  • 计算机网站建设与维护百度关键词统计
  • wordpress网站实现微信登录google google
  • 网站建设 零基础网站关键词如何优化
  • 如何撤销网站上信息app网站
  • 单页式网站系统每日新闻摘要30条
  • 网站开发公司 广告词优化方案电子版
  • 做便民工具网站怎么样关键词挖掘站长工具
  • 纺织面料做哪个网站好百度站长资源
  • 菏泽网站建设哪好怎样做平台推广
  • 网上有做logo的网站吗网络营销的核心是什么
  • 自建网站怎么做推广微信营销策略
  • 跳网站查询的二维码怎么做的关键词排名点击软件网站
  • 兼容手机的网站百度怎么推广自己的视频
  • 宝安中心医院入职体检跟我学seo
  • 企业网站后端模板石家庄疫情最新情况
  • 沈阳哪家网站做的好网络营销是指什么