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

做网站的时候网站的第一个字母怎么在网站标题前面显示 比如谷歌g一样seo课程总结怎么写

做网站的时候网站的第一个字母怎么在网站标题前面显示 比如谷歌g一样,seo课程总结怎么写,沧州企业网站制作,做公司网站题目链接:矩阵中的距离 题目: 输入一个由 0、1 组成的矩阵 M,请输出一个大小相同的矩阵 D,矩阵 D 中的每个格子是矩阵 M 中对应格子离最近的 0 的距离。水平或竖直方向相邻的两个格子的距离为 1。假设矩阵 M 中至少有一个 0。 …

题目链接:矩阵中的距离

题目

输入一个由 0、1 组成的矩阵 M,请输出一个大小相同的矩阵 D,矩阵 D 中的每个格子是矩阵 M 中对应格子离最近的 0 的距离。水平或竖直方向相邻的两个格子的距离为 1。假设矩阵 M 中至少有一个 0

例如,下图 (a) 是一个只包含 0、1 的矩阵 M,它的每个格子离最近的 0 的距离如下图 (b) 的矩阵 D 所示。M[0][0] 等于 0,因此它离最近的 0 的距离是 0,所以 D[0][0] 等于 0。M[2][1] 等于 1,离它最近的 0 的坐标是 (0, 1)、(1, 0)、(1, 2),它们离坐标 (2, 1) 的距离都是 2,所以 D[2][1] 等于 2。

分析

应用与图相关的算法解决问题的前提是能够找出图中的节点和边。这是一个背景为矩阵的问题,矩阵中的每个格子可以看成图中的一个节点,矩阵中上、下、左、右相邻的格子对应的节点之间有一条边相连。例如,可以将上图 (a) 中的矩阵看成下图所示的图。

这个题目要求计算每个格子离最近的 0 的距离。根据题目的要求,上、下、左、右相邻的两个格子的距离为 1。可以将图看成一个无权图,图中两个节点的距离是连通它们的路径经过的边的数目。由于这个问题与无权图的最近距离相关,因此可以考虑应用广度优先搜索解决

广度优先搜索需要一个队列。图中的哪些节点可以当作初始节点添加到队列中?这个问题是求每个格子离最近的 0 的距离,因此可以将所有的 0 当作初始节点添加到队列中,然后以值为 0 的节点作为起点做广度优先搜索。当经过 d 步到达某个格子,那么该格子离最近的 0 的距离就是 d

class Solution {
public:vector<vector<int>> updateMatrix(vector<vector<int>>& mat) {int rows = mat.size(), cols = mat[0].size();vector<vector<int>> dists(rows, vector<int>(cols));
​queue<vector<int>> q;for (int i = 0; i < rows; ++i){for (int j = 0; j < cols; ++j){if (mat[i][j] == 0){dists[i][j] = 0;q.push(vector<int>{ i, j });}else{dists[i][j] = INT_MAX;}}}
​vector<vector<int>> dirs = { { -1, 0 }, { 1, 0 }, { 0, -1 }, { 0, 1 } };while (!q.empty()){vector<int> coord = q.front();q.pop();int dist = dists[coord[0]][coord[1]];
​for (vector<int>& dir : dirs){int r = coord[0] + dir[0];int c = coord[1] + dir[1];if (r >= 0 && r < rows && c >= 0 && c < cols){if (dists[r][c] > dist + 1){dists[r][c] = dist + 1;q.push(vector<int>{ r, c });}}}}return dists;}
};

上述代码创建了一个大小与输入矩阵 mat 相同的二维数组 dists,用来记录每个格子离最近的 0 的距离。如果 mat[i][j] 为 0,那么这个格子离最近的 0 的距离自然是 0,因此 dists[i][j] 设为 0。如果 mat[i][j] 的值为 1,则先用最大的整数值初始化 dists[i][j],接下来搜索到对应的节点时再更新它的值

队列中的元素是矩阵中格子的坐标,是一个长度为 2 的数组。一个格子的坐标被添加到队列中之前,它离最近的 0 的距离已经计算好并且保存在数组 dists 中

每次从队列中取出一个坐标为 coord 的格子,该格子离最近的 0 的距离用变量 dist 表示。从该格子出发沿着上、下、左、右到达坐标为 (r, c) 的格子。如果该格子之前没有到达过,此时 dists[r][c] 的值仍然为最大的整数值,那么 dists[r][c] > dist + 1 的值为 true。由于是从离最近的 0 的距离为 dist 的格子多走一步到达该格子的,因此该格子离最近的 0 的距离是 dist + 1。此外,还需要将该格子添加到队列中,以便接下来搜索与该格子相连的其他节点

如果之前已经到达坐标为 (r, c) 的格子,那么 dist[r][c] 的值一定不可能大于 dist + 1。这是因为用的是广度优先搜索,而广度优先搜索能够保证从起始节点到达任意节点一定是沿着最短路径的。当第 1 次到达坐标为 (r, c) 的格子时记录到 dists[r][c] 的值一定是从值为 0 的格子到达该格子的最短距离。因此,当再次到达坐标为 (r, c) 的格子时,dists[r][c] > dist + 1 的值为 false。通过比较距离可以避免重复访问某个格子

http://www.tj-hxxt.cn/news/42738.html

相关文章:

  • 广西建设网站首页福建seo外包
  • 织梦网站做404页面湖南网站推广优化
  • 高端建站准备材料高端网站定制开发
  • 顺企网我做网站软件测试培训
  • 河南教育平台网站建设模板建站网页
  • 网站漏洞扫描服务本网站三天换一次域名
  • 网站建设合同管辖地网络营销方案例文
  • 2015做外贸网站好做吗百度竞价托管靠谱吗
  • 手机网站制作方法商业推广
  • 柳州网站建设搜索引擎营销的方法有哪些
  • 网站百科源码个人网站制作软件
  • 女孩说做网站测试电脑系统优化软件排行榜
  • 网站建设的难点百度网址大全网站
  • 天猫网站是用什么技术做的网络推广自学
  • 成都网站建设报价表适合员工的培训课程
  • 成都商城网站建设赵阳竞价培训
  • 网站制作怎么做郑州免费做网站
  • 网站怎么做参考文献百度云网站入口
  • 做公司+网站建设价格低杭州互联网公司排名榜
  • 阿里巴巴网站建设的功能定位百度入口提交
  • 如何建立网站空间南平网站seo
  • 坊子网站建设如何制作app软件
  • b2c电子商务网站的需求分析国家认可的教育培训机构
  • 如何对自己做的php网站加密网络广告宣传平台
  • 招聘网站做两份简历seo 360
  • 网站制作需要什么独立站平台选哪个好
  • 免费营销郑州靠谱seo整站优化
  • 微信h5游戏网站建设关键词快速排名软件价格
  • 佛山做网站找哪家好东莞营销网站建设推广
  • 苏州做网站推广的公司哪家好谷歌搜索引擎香港免费入口