286 次浏览
如果一个序列先递增后递减,则称该序列为比特尼克序列。在此问题中,给定一个全为正整数的数组。我们必须找到一个先递增后递减的子序列。为了解决此问题,我们将定义两个子序列,它们是最长递增子序列和最长递减子序列。LIS 数组将保存以 array[i] 结尾的递增子序列的长度。LDS 数组将存储从 array[i] 开始的递减子序列的长度。使用这两个数组,我们可以获得最长比特尼克子序列的长度。输入和输出输入:一个... 阅读更多
712 次浏览
给定一个整数数组。我们必须找到所有连续元素的总和,其中总和最大,该总和将作为输出发送。使用动态规划,我们将存储到当前项为止的最大和。这将有助于找到数组中连续元素的总和。输入和输出输入:一个整数数组。{-2, -3, 4, -1, -2, 1, 5, -3} 输出:子数组的最大和为:7算法maxSum(array, n)输入- 主数组,数组的大小。输出- 最大和。开始 tempMax := array[0] currentMax = tempMax for i := ... 阅读更多
335 次浏览
独立集是所有二叉树节点的子集,当该子集中任意两个节点之间没有边时。现在,我们将从一组元素中找到最长的独立集。即如果使用这些元素来形成一棵二叉树,那么所有最大的子集,其中该子集中没有元素相互连接。输入和输出输入:一棵二叉树。输出:最大独立集的大小为:5算法longSetSize(root)在此算法中,将形成二叉树,该树的每个节点都将保存数据和 setSize。输入 - 二叉树的根节点。输出 - ... 阅读更多
223 次浏览
让我们考虑一下,我们将尝试使用键盘编写字母“A”。我们的目标是只使用四个键并在文本字段中尝试编写最大数量的“A”。这些键是“A”、“C”、“V”和“Ctrl”。为了编写最大数量的 A,我们将使用 Ctrl + A 选择全部,Ctrl + C 复制,Ctrl + V 粘贴。输入和输出输入:击键次数,例如 7 输出:使用 7 次击键的最大 A 数为:9 按三次 A。然后 Ctrl+A、Ctrl+C、Ctrl+V、Ctrl+V算法keyNumbers(keyStrokes)输入:击键次数。输出:使用这些... 阅读更多
2K+ 次浏览
斐波那契数列是这样的,0、1、1、2、3、5、8、13、21、34、55、……在此序列中,第 n 项是第 (n-1) 项和第 (n-2) 项的和。为了生成,我们可以使用递归方法,但在动态规划中,过程更简单。它可以通过使用该表轻松生成此序列中的下一项,在表中存储所有斐波那契数。输入和输出输入:将项号作为输入。假设它是 10 输出:输入项数:10 第 10 个斐波那契项:55算法genFiboSeries(n)输入:最大项数。输出- 第 n 个斐波那契... 阅读更多
552 次浏览
对于此问题,旅程中有 N 个站点。车辆从站点 0 开始到 N-1 结束旅程。在表格中,给出了所有站点对的票价。我们必须找到使用这些给定成本到达目的地的最低成本。输入和输出输入:旅程的成本矩阵。0 15 80 90 ∞ 0 40 50 ∞ ∞ 0 70 ∞ ∞ ∞ 0 输出:最低成本为 65。首先从 0 到目的地 1。(成本 15),然后从 1 到 4(成本 50)。所以总成本为 65。算法findMinCost(cost)输入 - ... 阅读更多
1K+ 次浏览
有一个数字 n 和一个值。我们必须找到所有 n 位数字,其中所有 n 位数字的和与给定值相同。这里 0 不算作一位数字。数字 n 必须在 1 到 100 的范围内,值必须在 1 到 500 的范围内。输入和输出输入:此算法获取数字位数和总和值。假设位数为 3。总和为 15。输出:显示总和为 15 的不同 3 位数字的数量。结果为 69。(有... 阅读更多
给定两个字符串。第一个字符串是源字符串,第二个字符串是目标字符串。在此程序中,我们必须找到将第一个字符串转换为第二个字符串所需的操作次数。字符串的编辑可以是插入某些元素、从第一个字符串中删除某些内容或修改某些内容以转换为第二个字符串。输入和输出输入:两个要比较的字符串。字符串 1:编程 字符串 2:程序 输出:输入初始字符串:编程 输入最终字符串:程序 将编程转换为程序所需的更改次数为 4算法editCount(initStr,... 阅读更多
545 次浏览
这是一个著名的谜题。假设有一栋有 n 层楼的建筑,如果我们有 m 个鸡蛋,那么我们如何才能找到找到一个楼层所需的最小掉落次数,从该楼层掉落鸡蛋不会碎。有一些重要事项需要记住 - 当鸡蛋从给定楼层掉落时没有碎,那么它在任何较低的楼层也不会碎。如果鸡蛋从给定楼层掉落时碎了,那么它在所有较高的楼层都会碎。当鸡蛋碎了,必须丢弃,否则我们可以再次使用它。输入和... 阅读更多
323 次浏览
假设有 n 个台阶。一个人需要从第 1 个台阶走到第 n 个台阶。每次最多可以跨越的台阶数也是给定的。根据这些信息,我们需要找到到达第 n 个台阶的所有可能路径。例如,一个人每次最多可以跨越两个台阶。我们可以找到递归关系来解决这个问题。一个人可以从第 (n-1) 个台阶或第 (n-2) 个台阶走到第 n 个台阶。因此,ways(n) = ways(n-1) + ways(n-2)。输入和输出输入:台阶数,例如 10 每次最多可以跨越的台阶数 ... 阅读更多