摘要:
题目描述: 输入一个m行n列的字符矩阵,统计字符“@”组成多少个八连块。 如果两个字符“@”所在的格子相邻(横、竖或者对角线方向),就说它们属于同一个八连块。 思路: 还是使用图的DFS来解决问题,需要注意的都在代码注释里面。 代码: 阅读全文
摘要:
题目描述: 给定一个方阵,定义连通:上下左右相邻,并且值相同。可以想象成一张地图,不同的区域被涂以不同颜色。 输入: 整数N, (N<50)表示矩阵的行列数 接下来N行,每行N个字符,代表方阵中的元素 接下来一个整数M,(M<1000)表示询问数 接下来M行,每行代表一个询问, 格式为4个整数,y1 阅读全文
摘要:
一、图的表示 从图的逻辑结构定义来看,无法将图中的顶点排列成一个唯一的线性序列。在图中任意一个顶点都可以看成是图的第一个顶点,对任何一个顶点而言,它的邻接点之间也不存在顺序关系。为了方便存储和操作,需要将图中的顶点按一定的序列排列起来。 顶点在图中的位置就是指该顶点在人为确定的序列中的位置。 由于图 阅读全文
摘要:
一、基本概念 图(graph)是一种网状数据结构,图是由非空的顶点集合和一个描述顶点之间关系的集合组成。 图由顶点和边组成,顶点表示对象,边表示两个对象间的连接关系。 图大体分为两种,边没有指向性的叫无向图,边具有指向性的叫有向图。 方向起始的顶点称为起点或尾(弧尾)。方向指向的顶点称为终点或头(弧 阅读全文
摘要:
题目: 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶子结点所经过的结点形成一条路径。这里只讨论简化版本,原题目的意思是路径不限制。 思路: 这种题目经过前面的学习很容易看出使用dfs来解决。这里还使用到了带前缀的dfs,可以和 阅读全文
摘要:
一、问题 求有根树的任意两个节点的最近公共祖先(一般来说都是指二叉树)。最近公共祖先简称LCA(Lowest Common Ancestor)。例如,如下图一棵普通的二叉树。 结点3和结点4的最近公共祖先是结点2,即LCA(3,4)=2 。在此,需要注意到当两个结点在同一棵子树上的情况,如结点3和结 阅读全文