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

专做婴儿的网站百度搜索指数入口

专做婴儿的网站,百度搜索指数入口,卡盟网站建设公司,网站域名设计方案前言 大家好,我是jiantaoyab,在下面的题目中慢慢体会floodFill算法,虽然是新的算法,但是用的思想和前面的文章几乎一样,代码格式也几乎一样,但不要去背代码 图像渲染 https://leetcode.cn/problems/flood…

前言

大家好,我是jiantaoyab,在下面的题目中慢慢体会floodFill算法,虽然是新的算法,但是用的思想和前面的文章几乎一样,代码格式也几乎一样,但不要去背代码

图像渲染

https://leetcode.cn/problems/flood-fill/

解析

image-20240311085056178

代码

可以看到代码这部分,是不是和前面的文章的挺像的

class Solution {int m, n;int pre_color;int dx[4] = {0,0,1,-1};int dy[4] = {1,-1,0,0};
public:void dfs(vector<vector<int>>& image, int sr, int sc, int color){image[sr][sc] = color;for(int d = 0; d < 4; d++){int x = sr + dx[d], y = sc + dy[d];if((x >= 0 && x < m) && (y >= 0 && y < n) &&  image[x][y] == pre_color){image[x][y] = color;dfs(image, x, y, color);}}}vector<vector<int>> floodFill(vector<vector<int>>& image, int sr, int sc, int color) {m = image.size(), n = image[0].size();pre_color = image[sr][sc];if(image[sr][sc] == color) return image;dfs(image, sr, sc, color);return image; }
};

岛屿数量

https://leetcode.cn/problems/number-of-islands/

解析

image-20240311101256605

代码

class Solution {int m, n;vector<vector<bool>> check;int dx[4]= {0, 0, 1, -1};int dy[4]= {1, -1, 0, 0};
public:void dfs(vector<vector<char>>& grid, int i, int j){check[i][j] = true; //从i,j位置来的for(int d = 0; d < 4; d++){int x = i + dx[d], y = j + dy[d];if((x >= 0 && x < m) && (y >= 0 && y < n)  && grid[x][y] == '1' && !check[x][y]){dfs(grid, x, y);}}}int numIslands(vector<vector<char>>& grid) {int m = grid.size(), n = grid[0].size();check = vector<vector<bool>> (m ,vector<bool>(n));int ret = 0;//把整个grid遍历一次for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){//如果是一个岛屿而且是没有出现过的if(grid[i][j] == '1' && !check[i][j]){ret++;dfs(grid, i, j);}}}return ret;}
};

岛屿的最大面积

https://leetcode.cn/problems/ZL6zAn/

解析

大家看这个图就知道题目求的是什么了,比起上一题,多个统计数

image-20240311093330311

代码

class Solution {    int m, n;bool check[51][51];int dx[4] = {1,-1,0,0};int dy[4] = {0, 0,1,-1};int count;
public:void dfs(vector<vector<int>>& grid, int i, int j){count++;check[i][j] = true;for(int d = 0; d < 4; d++){int x = i + dx[d], y = j + dy[d];if(x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == 1  && !check[x][y]){dfs(grid, x, y);}}}int maxAreaOfIsland(vector<vector<int>>& grid) {m = grid.size(), n = grid[0].size();int ret = 0;for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(!check[i][j] && grid[i][j] == 1){count = 0;dfs(grid, i, j);ret = max(ret, count);}}}return ret;}
};

被围绕的区域

https://leetcode.cn/problems/surrounded-regions/

解析

image-20240311105332642

代码

class Solution {int m, n;int dx[4] = {0,0,1,-1};int dy[4] = {1,-1,0,0};
public:void dfs(vector<vector<char>>& board, int i, int j){board[i][j] = 'a';for(int d = 0; d < 4; d++){int x = i + dx[d], y = j + dy[d];if(x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'O'){dfs(board, x, y);}}}void solve(vector<vector<char>>& board) {m = board.size(), n = board[0].size();//把左右2列边界处理了for(int i = 0; i < m; i++){if(board[i][0] == 'O') dfs(board, i, 0);if(board[i][n-1] == 'O') dfs(board, i, n-1);}//把上下2行边界处理了for(int j = 0; j < n; j++){if(board[0][j] == 'O') dfs(board, 0, j);if(board[m-1][j] == 'O') dfs(board, m-1, j);}//还原 + 修改for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(board[i][j] == 'a') board[i][j] = 'O';else if(board[i][j] == 'O') board[i][j] = 'X';}}}
};

太平洋大西洋水流问题

https://leetcode.cn/problems/pacific-atlantic-water-flow/

解析

image-20240311172851034

代码

class Solution {int m, n;int dx[4] = {1, -1, 0, 0};int dy[4] = {0,  0, 1, -1};
public:void dfs(vector<vector<int>>& heights, int i, int j, vector<vector<bool>>&check){check[i][j] = true;for(int d = 0; d < 4; d++){int x = i + dx[d], y = j + dy[d];if(x >= 0 && x < m && y >= 0 && y < n &&  !check[x][y] &&heights[x][y] >= heights[i][j] ){dfs(heights, x, y, check);}}}vector<vector<int>> pacificAtlantic(vector<vector<int>>& heights) {m = heights.size(), n = heights[0].size();vector<vector<bool>> pac(m, vector<bool>(n));vector<vector<bool>> atl(m, vector<bool>(n));//处理pacfor(int j = 0; j < n; j++) dfs(heights, 0, j, pac);for(int i = 0; i < m; i++) dfs(heights, i, 0, pac);//处理altfor(int j = 0; j < n; j++) dfs(heights, m - 1, j, atl);for(int i = 0; i < m; i++) dfs(heights, i, n - 1, atl);vector<vector<int>> ret;for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(pac[i][j] && atl[i][j])ret.push_back({i, j});}}return ret;}
};

扫雷游戏

https://leetcode.cn/problems/minesweeper/

解析

image-20240311180338853

代码

class Solution {int dx[8] = {0, 0, -1, 1, 1, 1, -1 ,-1};int dy[8] = {1, -1, 0, 0, 1, -1, 1 ,-1};int m, n;
public:void dfs(vector<vector<char>>& board, int i, int j){int count = 0; //地雷个数//统计地雷个数for(int d = 0; d < 8; d++){int x = i + dx[d], y = j + dy[d];if(x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'M'){count++;}}//周围有地雷if(count){board[i][j] = count + '0';return ;}//周围没地雷展开else{board[i][j] = 'B';for(int d = 0; d < 8; d++){int x = i + dx[d], y = j + dy[d];if(x >= 0 && x < m && y >= 0 && y < n && board[x][y] == 'E'){dfs(board, x, y);}}}}vector<vector<char>> updateBoard(vector<vector<char>>& board, vector<int>& click) {m = board.size(), n = board[0].size();int x = click[0], y = click[1];//开局中地雷if(board[x][y] == 'M'){board[x][y] = 'X';return board;}dfs(board, x, y);return board;}
};
http://www.wooajung.com/news/27697.html

相关文章:

  • 南宁做网站优化平面设计
  • 建设银行银监会官方网站百度用户服务中心电话
  • php网站的客服窗口怎么做优秀营销案例分享
  • 如何用网站设计制作广州seo招聘
  • wordpress插件取消兰州seo新站优化招商
  • 网站 数据备份北京建设网站公司
  • 松江做网站公司百度推广外推联系方式
  • 韶关市建设局网站提升排名
  • dede后台网站主页德阳seo优化
  • 龙岩做网站有那几家新闻今天最新消息
  • 厦门市住宅建设办公室网站搜索引擎优化哪些方面
  • 资讯网站开发疫情防控数据
  • 用asp做网站需要准备什么营销咨询公司排名
  • 深圳建设工程交易服务网官网龙岗重庆seo标准
  • 无限责任公司网络优化工程师主要负责什么工作
  • 做电影网站会被捉吗新人做外贸怎么找国外客户
  • 网站源码绑定域名处理福州短视频seo平台
  • 云一网站建设获客渠道有哪些
  • 个人定制网站怎么做自己的app如何接广告
  • 用websocket做网站自己创建个人免费网站
  • 做网站所需要哪方面的知识佛山网站seo
  • 网站全景看图怎么做软文怎么写比较吸引人
  • 码支付wordpress前端提升神马seo关键词自然排名
  • 重庆渝中区企业网站建设哪家好球队排名榜实时排名
  • 两学一做网站按钮图片推广引流话术
  • 招聘网官网安卓手机优化大师官方下载
  • 上海网站推广公司郑州做网站公司排名
  • 做炫光素材的网站怎样打开网站
  • 大型网站要多少钱seo搜索引擎优化工资薪酬
  • 0基础学习网站建设拼多多运营