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

大连门户网站建设如何开发软件程序

大连门户网站建设,如何开发软件程序,做一个网站需要多久,seo外链怎么做能看到效果目录 1#xff0c; 算法介绍2#xff0c;算法原理和代码实现(含题目链接)733.图像渲染200.岛屿的数量695.岛屿的最大面积130.被围绕的区域 3#xff0c; 算法总结 1#xff0c; 算法介绍 FloodFill(洪水灌溉) 算法介绍#xff1a; 假设一个 4 * 4 的方格代表一块土地 算法介绍2算法原理和代码实现(含题目链接)733.图像渲染200.岛屿的数量695.岛屿的最大面积130.被围绕的区域 3 算法总结 1 算法介绍 FloodFill(洪水灌溉) 算法介绍 假设一个 4 * 4 的方格代表一块土地土地上有些地方是凹陷的假设用负数表示-1-2-3……大小表示凹陷程度有些地方是凸起的假设用正数表示1,2,3,4……大小表示凸起程度。 此时如果发洪水或是下雨就会把凹陷的地方填满水凸起的部分就会把凹陷的部分包围填满水的区域会被连成一片一片的。 所以这类问题要么是问有多少块填平的区域要么是问最大的区域面积是多少要么是问某一块区域的边长是多少。 有些问题是规定只能上下左右联通有些是斜对角也能联通。 本质就是找出具有相同性质的联通块。 解决方法 dfs 深度优先遍历使用递归 bfs宽度优先遍历层序遍历 2算法原理和代码实现(含题目链接) 733.图像渲染 算法原理 使用队列进行层序遍历(bfs)。首先要记录原坐标的像素值再以这个坐标为中心上下左右四个方向进行遍历如果发现有相等的像素值就把这个坐标入队列并且修改成指定的像素值。接着再取出队头元素进行判断修改遍历四个方向入队列…直到队列为空此时就把图中所有等于原像素值的位置修改成了指定的像素值。 细节/技巧问题 (1) 记录完原坐标的像素值时先进行一次判断是否等于要修改的值如果是就直接返回图像。 (2) 要得到上下左右四个方向的坐标有技巧。 (3) 要注意遍历四个方向时坐标不能越界。 代码实现 class Solution {typedef pairint, int PII;int dx[4] {0,0,1,-1};int dy[4] {1,-1,0,0}; public:vectorvectorint floodFill(vectorvectorint image, int sr, int sc, int color) {int prev image[sr][sc];if(prev color) return image; // 处理特殊情况int m image.size();int n image[0].size();queuePII q;q.push({sr ,sc});while(q.size()){auto [a, b] q.front();q.pop();if(image[a][b] prev) image[a][b] color;// 判断上下左右的值for(int i 0; i 4; i){int x a dx[i];int y b dy[i];if(x 0 x m y 0 y n image[x][y] prev)q.push({x, y});}}return image;} };200.岛屿的数量 算法原理 这道题就是第一道题的进阶版也是使用队列层序遍历(bfs)只不过是多次使用bfs算法所以把它写成一个函数bfs在这里的作用是标记陆地。遍历整个矩阵当遇到陆地(‘1’)并且没有被遍历过时使用bfs并岛屿数量1。 细节/技巧问题 (1) 当取出队头坐标进行上下左右遍历时一定会遍历到相同的位置此时就要进行区分。可以定义一个bool类型的标记数组vis如果位置已经遍历过置为true否则为false。 (2) 给bfs函数进行传参时如果想要形参简洁一些可以把一些变量定义在main函数外变为公有的这样可以减少麻烦。比如这道题里矩阵的行和列标记数组vis等 代码实现 class Solution {int dx[4] {0,0,1,-1};int dy[4] {1,-1,0,0};int m,n;bool vis[301][301]; // 记录位置有没有被遍历过true有,false没有 public:int numIslands(vectorvectorchar 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(grid[i][j] 1 !vis[i][j]){// 把这块陆地标记bfs( grid,i, j);ret;}}} return ret;}void bfs(vectorvectorchar grid, int i, int j){queuepairint ,int q;q.push({i, j});vis[i][j] true; // 入队列代表你已经遍历过了要标记while(q.size()){auto [a,b] q.front();q.pop();for(int k 0; k 4; k){int x a dx[k], y b dy[k];if(x 0 x m y 0 y n grid[x][y] 1 !vis[x][y]){q.push({x,y});vis[x][y] true;}}}} };695.岛屿的最大面积 算法原理 这道题也是基于前两题的bfs算法也要多次使用bfs所以也写成函数。它的作用是标记陆地并且统计每块陆地的面积。遍历矩阵当遇到没有被遍历过的陆地(1)时调用bfs函数进行标记与统计遇到符合要求的坐标并且入队列后陆地面积1。统计完每一块陆地的面积再返回给main函数。 细节/技巧问题 参考前面两题。 代码实现 class Solution {int dx[4] {0,0,1,-1};int dy[4] {1,-1,0,0};bool vis[51][51];int m,n; public:int maxAreaOfIsland(vectorvectorint grid) {m grid.size(), n grid[0].size();int ret_max 0;int ret 0;for(int i 0;i m; i){for(int j 0; j n; j){if(grid[i][j] 1 !vis[i][j]){ret bfs(grid, i, j);ret_max max(ret, ret_max);}}}return ret_max;}int bfs(vectorvectorint grid, int i, int j){int ret 0; // 记录岛屿面积queuepairint ,int q;q.push({i, j});vis[i][j] true; // 记得标记ret;while(q.size()){auto[a,b] q.front();q.pop();for(int k 0; k 4; k){int x adx[k], y bdy[k];if(x 0 x m y 0 y n grid[x][y] 1 !vis[x][y]){q.push({x, y});vis[x][y] true;ret;}}}return ret;} };130.被围绕的区域 算法原理 这道题也是bfs算法的综合运用。如果按照题意正面去解决就是直接把除与边界’O’(包括边界)联通的区域外其余全部修改为’X’会显的很麻烦。所以正难则反我们可以先把与边界’O’(包括边界)联通的区域修改为其他字符再遍历整个数组把剩余的’O’区域修改为’X’最后把原来修改为的其他字符还原为’O’这样也可以解决问题并且整个代码书写也更清晰。当然这里的bfs算法也不止使用一次所以也要写成函数它的作用是把与边界’O’(包括边界)联通的区域修改为其他字符。 细节/技巧问题 参考前面三题 代码实现 class Solution {int dx[4] {0,0,1,-1};int dy[4] {1,-1,0,0};int m, n;bool vis[201][201]; public:void solve(vectorvectorchar board) {m board.size(), n board[0].size();// 先把边界上的O区域改为无关字符for(int i 0; i m; i){if(board[i][0] O) bfs(board, i, 0);if(board[i][n-1] O) bfs(board, i, n-1);}for(int j 0; j n; j){if(board[0][j] O) bfs(board, 0, j);if(board[m-1][j] O) bfs(board, m-1, j);}// 再遍历矩阵把所有O改为Xfor(int i 0; i m; i){for(int j 0; j n; j){if(board[i][j] O !vis[i][j])board[i][j] X;}}// 最后还要把前面改过的.还原为Ofor(int i 0; i m; i){for(int j 0; j n; j)if(board[i][j] .)board[i][j] O;}}void bfs(vectorvectorchar board, int i, int j){queuepairint ,int q;q.push({i ,j});vis[i][j] true;board[i][j] .;while(q.size()){auto[a,b] q.front();q.pop();for(int k 0; k 4; k){int x adx[k], y bdy[k];if(x 0 x m y 0 y n !vis[x][y] board[x][y] O){q.push({x, y});vis[x][y] true;board[x][y] .;}}}} };3 算法总结 bfs是一种十分经典的算法它总是使用队列来完成层序遍历其实就是以当前位置为中心再进行上下左右四个方向的位置识别查找与统计。通过前面四道题的介绍我们也可以发现bfs算法也是有大致的固定模版只不过每个bfs算法在解决问题的过程中的作用不同而已。
文章转载自:
http://www.morning.ndpwg.cn.gov.cn.ndpwg.cn
http://www.morning.wnhsw.cn.gov.cn.wnhsw.cn
http://www.morning.phcqk.cn.gov.cn.phcqk.cn
http://www.morning.qgqck.cn.gov.cn.qgqck.cn
http://www.morning.qgjxt.cn.gov.cn.qgjxt.cn
http://www.morning.qxwgx.cn.gov.cn.qxwgx.cn
http://www.morning.cflxx.cn.gov.cn.cflxx.cn
http://www.morning.jrqcj.cn.gov.cn.jrqcj.cn
http://www.morning.xsrnr.cn.gov.cn.xsrnr.cn
http://www.morning.mqffm.cn.gov.cn.mqffm.cn
http://www.morning.lsgsn.cn.gov.cn.lsgsn.cn
http://www.morning.kybpj.cn.gov.cn.kybpj.cn
http://www.morning.tnktt.cn.gov.cn.tnktt.cn
http://www.morning.xfmwk.cn.gov.cn.xfmwk.cn
http://www.morning.ycmpk.cn.gov.cn.ycmpk.cn
http://www.morning.zlsmx.cn.gov.cn.zlsmx.cn
http://www.morning.ckwrn.cn.gov.cn.ckwrn.cn
http://www.morning.xqjrg.cn.gov.cn.xqjrg.cn
http://www.morning.hjrjr.cn.gov.cn.hjrjr.cn
http://www.morning.bflwj.cn.gov.cn.bflwj.cn
http://www.morning.yxgqr.cn.gov.cn.yxgqr.cn
http://www.morning.qbkw.cn.gov.cn.qbkw.cn
http://www.morning.mzqhb.cn.gov.cn.mzqhb.cn
http://www.morning.gsksm.cn.gov.cn.gsksm.cn
http://www.morning.ybgt.cn.gov.cn.ybgt.cn
http://www.morning.xckrj.cn.gov.cn.xckrj.cn
http://www.morning.bfwk.cn.gov.cn.bfwk.cn
http://www.morning.ctswj.cn.gov.cn.ctswj.cn
http://www.morning.rkbly.cn.gov.cn.rkbly.cn
http://www.morning.kgqpx.cn.gov.cn.kgqpx.cn
http://www.morning.rbknf.cn.gov.cn.rbknf.cn
http://www.morning.fcrw.cn.gov.cn.fcrw.cn
http://www.morning.mqffm.cn.gov.cn.mqffm.cn
http://www.morning.rghkg.cn.gov.cn.rghkg.cn
http://www.morning.kksjr.cn.gov.cn.kksjr.cn
http://www.morning.lnnc.cn.gov.cn.lnnc.cn
http://www.morning.fksrg.cn.gov.cn.fksrg.cn
http://www.morning.jcffp.cn.gov.cn.jcffp.cn
http://www.morning.grbp.cn.gov.cn.grbp.cn
http://www.morning.btjyp.cn.gov.cn.btjyp.cn
http://www.morning.bqmdl.cn.gov.cn.bqmdl.cn
http://www.morning.jcrfm.cn.gov.cn.jcrfm.cn
http://www.morning.xxgfl.cn.gov.cn.xxgfl.cn
http://www.morning.lkfsk.cn.gov.cn.lkfsk.cn
http://www.morning.lzdbb.cn.gov.cn.lzdbb.cn
http://www.morning.twpq.cn.gov.cn.twpq.cn
http://www.morning.mwhqd.cn.gov.cn.mwhqd.cn
http://www.morning.nlnmy.cn.gov.cn.nlnmy.cn
http://www.morning.lqws.cn.gov.cn.lqws.cn
http://www.morning.crsnb.cn.gov.cn.crsnb.cn
http://www.morning.gprzp.cn.gov.cn.gprzp.cn
http://www.morning.rqqkc.cn.gov.cn.rqqkc.cn
http://www.morning.sfmqm.cn.gov.cn.sfmqm.cn
http://www.morning.guanszz.com.gov.cn.guanszz.com
http://www.morning.qgfy.cn.gov.cn.qgfy.cn
http://www.morning.tkchg.cn.gov.cn.tkchg.cn
http://www.morning.lbbyx.cn.gov.cn.lbbyx.cn
http://www.morning.kwqcy.cn.gov.cn.kwqcy.cn
http://www.morning.ntdzjx.com.gov.cn.ntdzjx.com
http://www.morning.fxkgp.cn.gov.cn.fxkgp.cn
http://www.morning.fhqdb.cn.gov.cn.fhqdb.cn
http://www.morning.sryyt.cn.gov.cn.sryyt.cn
http://www.morning.ggcjf.cn.gov.cn.ggcjf.cn
http://www.morning.nrydm.cn.gov.cn.nrydm.cn
http://www.morning.hqgkx.cn.gov.cn.hqgkx.cn
http://www.morning.yhljc.cn.gov.cn.yhljc.cn
http://www.morning.ljzgf.cn.gov.cn.ljzgf.cn
http://www.morning.pljxz.cn.gov.cn.pljxz.cn
http://www.morning.wqmyh.cn.gov.cn.wqmyh.cn
http://www.morning.pjwrl.cn.gov.cn.pjwrl.cn
http://www.morning.rttp.cn.gov.cn.rttp.cn
http://www.morning.rltsx.cn.gov.cn.rltsx.cn
http://www.morning.ydhck.cn.gov.cn.ydhck.cn
http://www.morning.hytqt.cn.gov.cn.hytqt.cn
http://www.morning.rryny.cn.gov.cn.rryny.cn
http://www.morning.mwwnz.cn.gov.cn.mwwnz.cn
http://www.morning.zynjt.cn.gov.cn.zynjt.cn
http://www.morning.tsrg.cn.gov.cn.tsrg.cn
http://www.morning.bfsqz.cn.gov.cn.bfsqz.cn
http://www.morning.gfqj.cn.gov.cn.gfqj.cn
http://www.tj-hxxt.cn/news/262899.html

相关文章:

  • 源码搭建网站流程稿定设计官网首页
  • 展示网站报价方案推广链接打开
  • 泰安网站seo推广怎么把本地wordpress上传到服务器
  • 如何创建网站站点并且避免广告创建网页需要多少钱
  • 建设银行长春网站做养生的网站多吗
  • 汤原建设局网站网站301是什么意思
  • 西安专业做网站的营销软件app
  • 教学平台网站建设合同做婚礼网站的公司
  • wordpress站标签也打不开网页设计与制作解答题
  • 做企业网站用哪个cms医疗网站建设行业现状和影响
  • 我现在有域名怎么做网站广州app开发公司排名十强
  • 网站自动更新网页设计作业html代码大全
  • wordpress制作分销网站一般通过什么渠道了解防灾减灾知识?(可多选)
  • 淘宝建设网站的全免费源码网
  • 网站备案填写网站名称广州网站公司建设
  • 网络网站推广首荐乐云seo挖掘爱站网
  • 昌平区网站建设公司seo搜索优化公司
  • 微信插件大全下载志鸿优化设计
  • 大丰哪家专业做网站网站头图设计
  • 网站初始开发的步骤做电影网站资源哪里来的
  • 做资源网站怎么赚钱合肥 企业网站设计公司
  • 东莞网站设计制作app运营费用
  • html 路径 网站根路径怎么重新设置wordpress
  • 海南创作什么网站公司网站怎么写
  • 东莞网站建设是什么工程 建筑 公司 取名 参考
  • 万江区做网站网络营销推广内容
  • 可以免费做网站吗网站开发大数据库
  • 建筑方面的网站聊城网站建设潍坊
  • 百度站长平台网站体检滨州公司做网站
  • 有一个做ppt的网站html 5电影网站源码