蓝桥杯辅导课之双指针、BFS和图论
文章平均质量分 55
凌窍
只有变强才能被尊重,才有选择的权利!
展开
-
岛屿个数c++
遍历二维数组,遇到一块陆地‘1’,那么就把包含这块陆地的岛屿用bfs_islands函数搜索一遍,并标记这些块已经被搜索过了。然后,“派一些船”从该岛屿上一块陆地的八个方向出发,让船在海水上行驶,如果有船能到达“世界边缘”,那么说明该岛屿没有被包围。注意岛屿 33 并不是岛屿 11 或者岛屿 22 的子岛屿,因为岛屿 11 和岛屿 22 中均没有“环”。岛屿 22 在岛屿 11 的 “环” 内部,所以岛屿 22 是岛屿 11 的子岛屿,答案为 11。最外层加一圈海水,这一圈海水即为世界边缘。原创 2024-04-09 15:27:59 · 438 阅读 · 1 评论 -
完全二叉树的层序遍历c++
这其实就是获得后序遍历的逆过程,获得后序遍历你要先找到最“左边”的结点,比如上图的值为D的结点,然后把这个数拿出来放到层序遍历的结果中,然后找到最“左边”的结点的兄弟节点E,把其放到层序遍历的结果中……直到把所有数拿完放到层序遍历的结果中。由于这颗二叉树是利用完全二叉树的性质构建的,一颗树中的结点从上到下,从左到右结点编号越来越大,我们是利用数组创建的结点,下标可以表示结点编号,因此只需顺序输出数组的元素即为层序遍历的结果。1. 先构建出最大的左子树,然后先往新构建的结点填数,再往早一些构建的结点填数。原创 2024-04-06 19:54:45 · 579 阅读 · 1 评论 -
被围绕的区域c++
来源:牛客网4 4XXXXXOOXXOXXXXOX输出XXXXXXXXXXXXXXOX。原创 2024-03-18 17:49:23 · 228 阅读 · 0 评论