假设我们有一个图,用邻接表表示,我们需要找到一个二维矩阵 M,其中 M[i, j] = 1 表示顶点 i 和 j 之间存在路径,M[i, j] = 0 表示不存在路径。因此,如果输入如下所示,则输出将是 1111101111011110111101111 为了解决这个问题,我们将遵循以下步骤:ans:= 一个大小为 n x n 的二维矩阵,其中 n 是顶点数,用 0 填充for i in range 0 to n, doq:= 一个队列,并将 i 插入到开头while q is not empty, donode:= q 的第一个元素,并从 q 中删除第一个元素if ans[i, ... 阅读更多
假设我们有一个 n x m 矩阵 Mat,我们需要从左上到右下按升序对该 Mat 进行对角线排序,以便对角线上的所有元素都已排序。因此,如果输入矩阵如下所示:331122121112 则输出矩阵将是:111112221233 为了解决这个问题,我们将遵循以下步骤:定义一个名为 solve() 的方法,这将需要 si、sj 和矩阵 matn:= 行数和 m:= 列数创建一个名为 temp 的数组i:= si 和 j:= sj,以及 index:= 0while i < n and j < m, do将 m[i, j] 插入到 ... 阅读更多
假设我们有两个字符串 S 和 T,它们是彼此的排列。假设有一个操作,我们从中删除 S 的第一个或最后一个字符,并将其插入字符串的任何位置。然后找到将 S 转换为 T 所需的最少操作次数。因此,如果输入类似于 s = "zyvxw" t = "vwxyz",则输出将为 3,因为这些操作是:删除 "w" 并将其插入 "v" 之后以获得 "zyvwx" 删除 "z" 并将其插入 "x" 之后以获得 "yvwxz" 删除 "y" 并将其插入 "x" ... 阅读更多
假设我们有两个长度相同的字符串 S 和 T,我们需要检查是否可以同时在公共点处切割这两个字符串,以便 S 的第一部分和 T 的第二部分形成一个回文。因此,如果输入类似于 S = "cat" T = "pac",则输出将为 True,因为如果我们将字符串切割成 "c" + "at" 和 "d" + "ac",则 "c" + "ac" 是一个回文。为了解决这个问题,我们将遵循以下步骤:n:= a 的大小i:= 0while i < n and a[i] ... 阅读更多