282 次浏览
假设我们有一个二叉树,其中每个节点的值要么是 0 要么是 1。我们必须找到同一棵树,其中每个不包含 1 的子树都被删除。所以如果树是这样的 - 要解决这个问题,我们将遵循以下步骤 - 定义一个递归方法 solve(),它将接收节点。该方法将如下所示 - 如果节点为空,则返回 null;节点的左子节点 := solve(节点的左子节点);节点的右子节点 := solve(节点的右子节点);如果节点的左子节点为空,并且节点的右子节点也为空,并且节点值为 0,则… 阅读更多
205 次浏览
假设我们有一个二维矩阵,其中包含以下值:- 0 代表空单元格。- 1 代表墙。- 2 代表人。这里一个人可以朝这四个方向中的任何一个行走(上、下、左和右)。我们必须找到一个非墙单元格,使得它最小化每个人必须行走的总行程距离,并最终找到该距离。因此,如果输入是这样的:201010120022,则输出将为 7,因为最佳会面点是右下角。为了解决这个问题,我们将遵循以下步骤:twos := 一个新映射,costs := ... 阅读更多
168 次浏览
假设我们有一个二维网格代表一个迷宫,其中 0 代表空空间,1 代表墙。我们将从 grid[0, 0] 开始,我们必须找到到达网格右下角所需的最小正方形数。如果我们无法到达,则返回 -1。因此,如果输入是这样的:000100100,则输出将为 5。为了解决这个问题,我们将遵循以下步骤:R := 网格的行数,C := 网格的列数;q := [0, 0, 1],当 A[0, 0] 为 1 时,否则为一个新列表;A[0, 0] := 1;对于每个 (r,... 阅读更多
116 次浏览
假设我们有一个电子表格的列标题。我们知道电子表格的列号是字母的。它从 A 开始,在 Z 之后,它将是 AA、AB,到 ZZ,然后再次是 AAA、AAB,到 ZZZ 等等。因此,第 1 列是 A,第 27 列是 Z。在这里,我们将看到如果给定列数,如何获取列字母。因此,如果列号是 80,则它将是 CB。因此,我们必须根据数字找到相应的列标题。如果输入是 30,则它将是 AD。示例 实时演示 #include <iostream> #include <string> using ... 阅读更多
196 次浏览
假设我们有一个正整数;我们必须找到其在电子表格中显示的相应列标题。因此 [1: A]、[2: B]、[26: Z]、[27: AA]、[28: AB] 等等。因此,如果输入是 29,则输出将是 AC。为了解决这个问题,我们将遵循以下步骤:当 n 不为零时,执行以下操作:- n := n - 1;res := res + n mod 26 + 'A' 的 ASCII 码;n := n / 26;反转数组 res;返回 res。让我们看看以下实现,以便更好地理解:示例 实时演示 #include <iostream> using namespace std; ... 阅读更多
181 次浏览
假设我们有一个称为 tasks 的值列表,其中每个不同的值代表不同的任务类型,我们还有一个非负整数 k。每个任务需要一分钟才能完成,但我们必须等待 k 分钟才能完成相同类型的两个任务。在任何时候,我们都可以执行任务或等待。我们必须找到完成所有任务所需的最短时间。因此,如果输入是这样的:nums = [2, 2, 2, 3, 3, 2],k = 1,则输出将为 7,因为最佳排序是… 阅读更多
333 次浏览
假设我们有两个值 start 和 end,我们必须找到使用以下操作将 start 转换为 end 所需的最小操作数:- 减 1 - 乘以 2。因此,如果输入是这样的:start = 2,end = 7,则输出将为 3,因为我们可以将 2 乘以得到 4,然后将 2 乘以得到 8,然后减 1 得到 7。为了解决这个问题,我们将遵循以下步骤:ans := 0;无限地执行以下操作:如果 end < start,则…
假设我们有一棵二叉树。我们必须检查这棵树是否是对称树。如果取其镜像图像时相同,则称一棵树是对称的。从这两棵树来看,第一棵是对称的,但第二棵不是。为了解决这个问题,我们将遵循以下步骤。我们将递归调用以下步骤。该函数将为 solve(root, root);如果节点 1 和节点 2 为空,则返回 true;如果节点 1 或节点 2 为空,则返回 false;当 node1.val = node2.val 且 solve(node1.left, node2.right) 且 solve(node1.right, node2.left) 时返回 true;让我们… 阅读更多
113 次浏览
假设我们有两棵树,我们必须检查我们是否可以通过任意次数地交换任何节点的左子树和右子树来将第一棵树转换为第二棵树。因此,如果输入是这样的,则输出将为 True。为了解决这个问题,我们将遵循以下步骤:que1 := 一个最初包含 root0 的队列;que2 := 一个最初包含 root1 的队列;当 que1 和 que2 不为空时,执行以下操作:temp1 := 一个新列表,temp2 := 一个新列表;values1 := 一个新列表,values2 := 一个新列表;如果 que1 和 que2 包含不同数量的元素,则返回 False;对于 i in range 0… 阅读更多
265 次浏览
假设我们有一棵二叉树,我们必须检查树中除叶子节点外的每个节点的值是否与其左子节点的值和右子节点的值之和相同。因此,如果输入是这样的,则输出将为 True。为了解决这个问题,我们将遵循以下步骤:定义一个函数 dfs()。这将接收 root;如果 root 为空,则返回 True;如果 root 的左子节点为空且 root 的右子节点为空,则返回 True;left := 0;如果 root 的左子节点不为空,则 left := 左子节点的值;right := 0;如果右子节点… 阅读更多