650 次查看
假设我们有一个字符串 s。我们可以通过在它前面添加字符来将其转换为回文串。我们必须找到可以执行此操作的最短回文串。因此,如果字符串类似于“abcc”,则结果将是 - "ccbabcc"。要解决此问题,我们将遵循以下步骤 -n := s 的大小,s1 := s,s2 := s反转字符串 s2s2 := s 连接 "#" 连接 s2定义一个与 s2 大小相同的数组 lpsj := 0,i := 1当 i < s2 的大小时,执行 -如果 s2[i] 与 s2[j] 相同,则... 阅读更多
557 次查看
假设我们有一个二维棋盘和一个单词列表。因此,我们必须从字典中找到棋盘中的所有单词。这里每个单词必须由连续相邻单元格的字母构成,其中相邻单元格是指水平或垂直相邻的单元格。我们必须记住,同一个字母单元格在一个单词中不能使用多次。因此,如果输入类似于 -要解决此问题,我们将遵循以下步骤 -创建一个数组 result定义一个名为 solve() 的方法,它将接收棋盘、d、i、j swhen i 或 j... 阅读更多
136 次查看
假设我们有一个数组,其中第 i 个元素是第 i 天给定股票的价格。我们必须设计一种算法来找到最大利润。我们最多可以完成 k 笔交易。因此,如果输入类似于 [3, 2, 6, 4, 0, 3] 且 k = 2,则输出将为 7,因为在第 2 天(价格 = 2)买入并在第 3 天(价格 = 6)卖出,利润将为 6-2 = 4。然后在第 5 天(价格为 0)买入并在第 6 天(价格为... 阅读更多
580 次查看
假设有一个故事,比如恶魔抓走了名叫 P 的公主,并将她囚禁在地牢的右下角。地牢由 M 行 N 列网格状房间组成。我们的勇敢骑士 K 最初位于左上方的房间,必须穿过地牢与恶魔战斗,以拯救公主。现在骑士有一个初始生命值,用一个正整数表示。如果在任何时候他的生命值降至 0 或以下,他就会在那一刻死亡。一些房间有恶魔看守,所以... 阅读更多
329 次查看
假设我们有一个未排序的数组。我们必须找到其排序形式中连续元素之间的最大差值。如果数组包含少于 2 个元素,我们将返回 0。因此,如果数组类似于 [12, 3, 9, 1, 17],则输出将为 6,因为排序后的数组将为 [1, 3, 9, 12, 17],因此 5 将是最大差值,因为 3 和 9 之间的差值为 6。要解决此问题,我们将遵循以下步骤 -minVal := inf,maxCal := -infn := num 的大小如果 n < 2,则返回... 阅读更多
262 次查看
假设我们有一个已排序的数组,现在它在某个枢轴处旋转。枢轴在之前是未知的。我们必须从该数组中找到最小元素。因此,如果数组类似于 [4, 5, 5, 5, 6, 8, 2, 3, 4],则最小元素为 2。要解决此问题,我们将遵循以下步骤 -定义一个名为 search() 的方法,它接收 arr、low 和 highif low = high,则返回 arr[low]mid := low + (high – low) / 2ans := infif arr[low] < arr[mid],则 ans := arr[low] 和 search(arr, mid, high) 的最小值否则当... 阅读更多
478 次查看
假设我们有一个二维平面。我们必须找到位于同一条直线上的最大点数。因此,如果点类似于 -那么有 4 个点要解决此问题,我们将遵循以下步骤 -n := 点数,如果 n < 3,则返回 nans := 2对于 i 范围从 1 到 n – 1count := 0从索引 i 和 i – 1 获取两个点,它们是 p1、p2如果 p1 和 p2 点相同,则对于 j 范围从 0 到 n – 1如果 points[j].x = p1.x 且 points[j].y = p1.y,则... 阅读更多
911 次查看
假设我们有一棵二叉树。我们必须使用迭代方法找到这棵树的后序遍历。因此,如果树类似于 -那么输出将是:[9, 15, 7, 10, -10]要解决此问题,我们将遵循以下步骤 -如果根为 null,则返回空数组创建数组 retstack := 定义一个包含 [root, 0] 的栈当栈不为空时 -node := 栈的顶部,然后从栈中删除元素。如果节点对的第二个值为 0,则current := 节点对的第一个值将一个 (current, 1) 对插入到栈中如果 current 的右侧... 阅读更多
416 次查看
假设我们有一个非空字符串 s 和一个名为 wordDict 的字典,此字典包含一个非空单词列表,在 s 中添加空格以构造一个句子,其中每个单词都是一个有效的字典单词。我们必须找到所有此类可能的句子。“appleraincoat”和字典为 [“app”, “apple”, “rain”, “coat”, “raincoat”]要解决此问题,我们将遵循以下步骤 -创建一个映射 memo定义一个名为 solve 的方法,它将接收字符串和 wordDictif s 为 null,则返回空列表如果 s 在 memo 中,则 -返回 memo[s]创建一个数组 ret对于 i 范围从 1 到 size of sif 子字符串... 阅读更多
465 次查看
假设有 N 个孩子,他们排成一排。这里每个孩子都被分配了一个评级值。我们根据以下要求向这些孩子提供糖果 -每个孩子必须至少有一颗糖果。评级高的孩子将比他们的邻居获得更多糖果。我们必须找到我们必须提供的最少糖果数量?因此,如果输入类似于 [1, 1, 3],则输出将为 4。因此,他们将分别获得 1、1 和 2 颗糖果。要解决此问题,我们将遵循以下步骤 -n := 数组 ratings 的大小,创建... 阅读更多