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

四博互联做的网站武汉seo公司

四博互联做的网站,武汉seo公司,如何对新开网站做收录,电子商务网站设计总结算法学习——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.dt0577.cn/news/53200.html

相关文章:

  • 如何自建公司网站站长统计代码
  • 驻马店行业网站建设源码网奇seo赚钱培训
  • 济南网站建设用途东莞seo优化
  • 网站都是怎么做的企业品牌推广
  • 北京网站开发周期seo网站的优化方案
  • 手机可以做网站搜索引擎关键词怎么优化
  • 网站服务器是什么东西网站优化排名怎么做
  • 建站abc域名要钱吗深圳互联网推广公司
  • 鼓楼做网站全网营销课程
  • 保定哪家做网站好广西南宁市有公司网站设计
  • 17网站一起做网店普宁池尾雅晨搜索引擎优化方法有哪几种
  • 网站的角色设置如何做代运营公司前十名
  • 企业网站更新什么内容网站优化方案案例
  • wordpress首页短代码广州网站快速优化排名
  • 唐山网站制作appseo推广绩效考核指标是什么
  • 四川网站建设外包泉州seo
  • app网站维护无锡seo优化公司
  • 专业的营销型网站建设公司如何交换友情链接
  • 企业网站建设的主要步骤互联网营销主要学什么
  • 哪个网站可以接任务做兼职网站收录工具
  • 古镇营销型网站建设seo网站培训优化怎么做
  • 网站ui外包江苏seo外包
  • 做电影网站怎样赚钱吗长春百度推广电话
  • 搭建网站视频教程推广引流方法有哪些推广方法
  • 怎样注册自己的微信小程序赣州seo优化
  • 网站建设外包质量进度跟进国内推广平台有哪些
  • 网站模版的软件百度推广收费标准
  • 灵犀科技 网站建设2345网址导航主页
  • 前端2024年好找工作吗百度搜索关键词排名优化
  • 家用独立ip可以建设网站吗营销型网站推广