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

长沙网站建设报价企业建网站有这个必要吗

长沙网站建设报价,企业建网站有这个必要吗,城乡建设部网站首页,怎么做自己的网站后台教程算法学习——LeetCode力扣图论篇1 797. 所有可能的路径 797. 所有可能的路径 - 力扣(LeetCode) 描述 给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特…

算法学习——LeetCode力扣图论篇1

在这里插入图片描述

797. 所有可能的路径

797. 所有可能的路径 - 力扣(LeetCode)

描述

给你一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)

graph[i] 是一个从节点 i 可以访问的所有节点的列表(即从节点 i 到节点 graph[i][j]存在一条有向边)。

示例

示例 1:
在这里插入图片描述

输入:graph = [[1,2],[3],[3],[]]
输出:[[0,1,3],[0,2,3]]
解释:有两条路径 0 -> 1 -> 3 和 0 -> 2 -> 3

示例 2:

在这里插入图片描述

输入:graph = [[4,3,1],[3,2,4],[3],[4],[]]
输出:[[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]

提示

n == graph.length
2 <= n <= 15
0 <= graph[i][j] < n
graph[i][j] != i(即不存在自环)
graph[i] 中的所有元素 互不相同
保证输入为 有向无环图(DAG)

代码解析

class Solution {
public:vector<vector<int>> result;vector<int> path;void dfs(vector<vector<int>>& graph , int indnx){if(indnx == graph.size()-1) {path.push_back(graph.size()-1);result.push_back(path);path.pop_back();return;}for(int i=0 ; i<graph[indnx].size() ;i++){path.push_back(indnx);dfs(graph,graph[indnx][i]);path.pop_back();}return;}vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {dfs(graph,0);return result;}
};

200. 岛屿数量

200. 岛屿数量 - 力扣(LeetCode)

描述

给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

示例

示例 1:

输入:grid = [
[“1”,“1”,“1”,“1”,“0”],
[“1”,“1”,“0”,“1”,“0”],
[“1”,“1”,“0”,“0”,“0”],
[“0”,“0”,“0”,“0”,“0”]
]
输出:1

示例 2:

输入:grid = [
[“1”,“1”,“0”,“0”,“0”],
[“1”,“1”,“0”,“0”,“0”],
[“0”,“0”,“1”,“0”,“0”],
[“0”,“0”,“0”,“1”,“1”]
]
输出:3

提示

m == grid.length
n == grid[i].length
1 <= m, n <= 300
grid[i][j] 的值为 ‘0’ 或 ‘1’

代码解析

深度优先搜索dfs
class Solution {
public:int result = 0;int m =0 ,n=0;int dir[4][2] = {0,1, 0,-1 , -1,0 , 1,0};void dfs(vector<vector<char>>& grid , vector<vector<bool>> &path , int x , int y){for(int i=0 ; i<4 ;i++){int next_x = x + dir[i][0];int next_y = y + dir[i][1];if(next_x<0||next_x>=m||next_y<0||next_y>=n) continue;else if( path[next_x][next_y] == false && grid[next_x][next_y] == '1') {   path[next_x][next_y] = true;dfs(grid,path,next_x,next_y);}}return;}int numIslands(vector<vector<char>>& grid) {m = grid.size();n = grid[0].size();vector<vector<bool>> path( m , vector<bool>( n ,false) );for(int i=0 ; i<m ;i++){for(int j=0 ; j<n ;j++){if(path[i][j] == false && grid[i][j] == '1'){result++;path[i][j] = true;dfs(grid,path,i,j);}}}return result;}
};
广度优先搜索bfs
class Solution {
public:int result = 0;int m =0 ,n=0;int dir[4][2] = {0,1, 0,-1 , -1,0 , 1,0};void bfs(vector<vector<char>>& grid , vector<vector<bool>> &path , int x , int y){queue<pair<int,int>> my_que;my_que.push({x,y});path[x][y] = true;while(my_que.size() != 0){pair<int,int> cur = my_que.front();my_que.pop();for(int i=0 ; i<4 ;i++){int next_x = cur.first + dir[i][0];int next_y = cur.second + dir[i][1];if(next_x<0||next_x>=m||next_y<0||next_y>=n) continue;else if( path[next_x][next_y] == false && grid[next_x][next_y] == '1') {   my_que.push({next_x,next_y});path[next_x][next_y] = true;}}}return;}int numIslands(vector<vector<char>>& grid) {m = grid.size();n = grid[0].size();vector<vector<bool>> path( m , vector<bool>( n ,false) );for(int i=0 ; i<m ;i++){for(int j=0 ; j<n ;j++){if(path[i][j] == false && grid[i][j] == '1'){result++;path[i][j] = true;bfs(grid,path,i,j);}}}return result;}
};

695. 岛屿的最大面积

695. 岛屿的最大面积 - 力扣(LeetCode)

描述

给你一个大小为 m x n 的二进制矩阵 grid 。

岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。

岛屿的面积是岛上值为 1 的单元格的数目。

计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。

示例

示例 1:
在这里插入图片描述

输入:grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,1,1,0,1,0,0,0,0,0,0,0,0],[0,1,0,0,1,1,0,0,1,0,1,0,0],[0,1,0,0,1,1,0,0,1,1,1,0,0],[0,0,0,0,0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,1,1,0,0,0],[0,0,0,0,0,0,0,1,1,0,0,0,0]]
输出:6
解释:答案不应该是 11 ,因为岛屿只能包含水平或垂直这四个方向上的 1 。
示例 2:

输入:grid = [[0,0,0,0,0,0,0,0]]
输出:0

提示

m == grid.length
n == grid[i].length
1 <= m, n <= 50
grid[i][j] 为 0 或 1

代码解析

class Solution {
public:int dir[4][2] = {0,1,0,-1,-1,0,1,0};int m=0,n=0;int result = 0;int tmp_result = 0;void dfs(vector<vector<int>>& grid , vector<vector<bool>> &path , int x ,int y){for(int i=0 ; i<4 ;i++){int next_x = x + dir[i][0];int next_y = y + dir[i][1];if(next_x<0 || next_x>=m || next_y<0 || next_y>=n) continue;if(grid[next_x][next_y] == 1 && path[next_x][next_y] == false){tmp_result++;path[next_x][next_y] = true;dfs(grid,path,next_x,next_y);}}}int maxAreaOfIsland(vector<vector<int>>& grid) {m = grid.size();n = grid[0].size();vector<vector<bool>> path(m , vector<bool>( n , false ));for(int i=0 ; i<m ;i++){for(int j=0 ; j<n ;j++){if(grid[i][j] == 1 && path[i][j] == false){path[i][j] = true;tmp_result = 1;dfs(grid,path,i,j);if(tmp_result > result) result =tmp_result;}}}return result;}
};
http://www.yayakq.cn/news/818462/

相关文章:

  • 渭南商铺网站建设微信怎么开店铺小程序
  • 网页设计与网站架设怎么做能让网站尽快收录
  • 绍兴网站制作报价wordpress json 输出
  • 免费的黄冈网站有哪些平台可以聊天呢哈尔滨市香坊区建设局网站
  • 河间网站制作备案不关闭网站怎么样
  • 市住房和城乡建设局网站大连做衣服类网站策划书
  • 有了域名之后怎么做网站福州公司网站开发方案
  • 门户网站html模板下载微信 存储wordpress
  • 网站优化公司效果无锡市太湖新城建设网站
  • 郑州网站优化多少钱专业的企业网站开发公司
  • 建站cms源码深圳景点
  • 彩票网站建设成本株洲做网站
  • 网站建设设计书手机app开发软件教程
  • 二手商品网站制作wordpress评论滑动插件
  • 网站版心怎么做企业服务专区
  • 常用外贸网站做网站需要学习什么
  • 网站注册后能不能注销网站建设培训公司
  • 仿笑话网站源码广州公司招聘
  • 河南住房与城乡建设厅网站科技小巨人培育企业
  • 网站后台更新图片wordpress 默认自带插件
  • 简约 网站 设计专业做网站 优帮云
  • dtu网站开发移动网站建设报价表
  • 企业怎样选择域名做网站无锡网站维护
  • 百度网站建设教程香河家具城网站建设目标
  • 网站开发人员考核信息技术网站开发
  • 安徽道遂建设工程有限公司网站菏泽企业做网站
  • 做美缝在哪个网站接单北京网站制作建设公司哪家好
  • 电商网站建设模型图如何申请建设个人网站
  • 审计局网站建设管理怎么查网站是用什么语言做的
  • 朔州公司做网站广州建设工程交易中心增城电话