📝 动态编程

1324篇技术文档
  到达矩阵的任何边界边的最小步长 |设置 1

📅  最后修改于: 2021-09-17 06:48:30        🧑  作者: Mango

给定一个 NXM 矩阵,其中 ai, j= 1 表示该单元格不为空,ai, j= 0 表示该单元格为空,而 ai, j= 2 表示您正站在该单元格处。您可以垂直向上或向下以及水平向左或向右移动到任何空单元格。任务是找到到达矩阵任何边界边的最少步数。如果不可能到达任何边界边缘,则打印 -1。注意:整个矩阵中将只有一个值为 2 的单元格。例子:方法:该问题可以使用动态规划方法解决。下面给出解决上述问题...

  到达终点的最少跳跃次数 |设置 2(O(n) 解决方案)

📅  最后修改于: 2021-09-17 06:48:37        🧑  作者: Mango

给定一个整数数组,其中每个元素表示可以从该元素向前进行的最大步数。编写一个函数,返回到达数组末尾(从第一个元素开始)的最少跳转次数。如果一个元素是 0,那么我们就不能穿过那个元素。如果我们无法到达终点,则返回-1。例子:在这篇文章中,将讨论它的 O(n) 解决方案。在 Set -1 中,讨论了 O(n2) 解决方案。执行:要使用的变量:maxReach变量 maxReach 始终存储数组中的最大可...

  改变数组后的最大和子数组

📅  最后修改于: 2021-09-17 06:48:43        🧑  作者: Mango

给定一个大小为N的数组arr[]。任务是在最多执行一次给定操作后找到可能的最大子数组和。在单个操作中,您可以选择任何索引i,并且可以反转子数组 arr[0…i]或子数组 arr[i…N-1]。例子:Input:arr[] = {3, 4, -2, 1, 3}Output:11After reversing arr[0…2], arr[] = {-2,4, 3, 1, 3}Input:arr[] =...

  最大和使得恰好选择了一半的元素并且没有两个相邻的元素

📅  最后修改于: 2021-09-17 06:48:50        🧑  作者: Mango

给定一个包含 N 个整数的数组 A。找到可能的最大总和,以便选择精确的 floor(N/2) 个元素并且没有两个选定的元素彼此相邻。 (如果 N = 5,则应选择 2 个元素作为 floor(5/2) = 2)有关此问题的更简单版本,请查看此内容。例子:Input:A = [1, 2, 3, 4, 5, 6]Output:12Explanation:Select 2, 4 and 6 making...

  Sprinklr 面试经历 |设置 2(校内)

📅  最后修改于: 2021-09-17 06:48:57        🧑  作者: Mango

Sprinklr 校园面试体验:第 1 轮:(Hackerrank 测试)1 小时40 个技术和能力 mcqs,主要是几乎所有主题的技术(C、 Java、DBMS、OS、网络、DS-Algo 等)问题是中等标准。第 2 轮:(编码测试)1.5 小时由3个问题组成。 2个很容易,一个中等。Q. 不记得 q1 但逻辑很简单(只是某种添加和检查哪个更大)Q. 给定数组,找出总和为 K 的不同对的数量。问...

  最长递增子序列的长度,使得没有两个相邻元素互质

📅  最后修改于: 2021-09-17 06:49:03        🧑  作者: Mango

给定一个大小为 N 的数组 arr[]。任务是从给定数组中找到最长子序列的长度,使得该序列严格递增并且没有两个相邻元素互质。注意:给定数组中的元素严格按顺序递增 (1 <= a[i] <= 105)例子:Input :a[] = { 1, 2, 3, 4, 5, 6}Output :3Explanation :Possible sub sequences are {1}, {2}, {3}, {4...

  所需的最小个位数素数,其总和等于 N

📅  最后修改于: 2021-09-17 06:49:09        🧑  作者: Mango

求和等于 N 的最小个位数素数。例子:方法:动态规划可用于解决上述问题。观察结果是:只有 4 个个位数的素数 {2, 3, 5, 7}。如果可以通过对一位数的素数求和得到 N,那么 N-2、N-3、N-5 或 N-7 中的至少一个也是可达的。所需的最小个位数素数数将比构成{N-2, N-3, N-5, N-7}之一所需的最小素数位数多 1。使用这些观察结果,建立了一个循环来解决这个问题。重复将是:...

  最大长度子序列,相邻元素之间的差异为 0 或 1

📅  最后修改于: 2021-09-17 06:49:17        🧑  作者: Mango

给定一个由n 个整数组成的数组。问题是找到相邻元素之间的差异为 0 或 1 的子序列的最大长度。例子:来源:Expedia 采访经历 | 12套此问题的解决方案与最长递增子序列问题非常相似。唯一的区别是这里我们要检查子序列相邻元素之间的绝对差是0还是1。C++JavaPython3C#PHPJavascript输出:如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现...

  将任何子数组的所有元素与 X 相乘后最大化子数组和

📅  最后修改于: 2021-09-17 06:49:24        🧑  作者: Mango

给定一个由N 个整数组成的数组arr[]和一个整数X。我们可以选择任何子数组并将其所有元素乘以X。乘法后,求和最大的子数组。任务是以最终子数组和最大化的方式乘以子数组。例子:Input:arr[] = { -3, 8, -2, 1, -6 }, X = -1Output:15Choose the sub-array with {-2, 1, -6} and multiply X.Now the n...

  要删除的最小节点数,这样子树的节点数不会超过 K 个

📅  最后修改于: 2021-09-17 06:49:31        🧑  作者: Mango

给定一棵树,它有N 个节点值从1到N和(N – 1) 条边和一个数字K,任务是从树中删除最少数量的节点,使得每个子树最多有K 个节点。删除节点将删除从该节点到所有其他连接节点的边。例子:Input:N = 10, K = 3, Below is the graph:Output:Number of nodes removed: 2Removed Nodes: 2 1Explanation:Afte...

  计算仅由按字典顺序排序的元音组成的 N 长度字符串

📅  最后修改于: 2021-09-17 06:49:38        🧑  作者: Mango

给定一个整数N,任务是计算由元音{a, e, i, o, u}组成的所有可能的长度为N 的字符串,这些元音可以形成为每个字符串按字典顺序排序。例子:Input:N = 2Output:15Explanation:The strings of length 2 which are sorted in lexicographical order are [“aa”, “ae”, “ai”, “ao”,...

  矩阵中满足给定条件的单元格数

📅  最后修改于: 2021-09-17 06:49:44        🧑  作者: Mango

给定一个由空单元格(用“1”表示)和障碍物(用“0”表示)组成的N * N网格,任务是找到可以放置镜子以查看东侧的空单元格的数量从南侧看网格。例子:Input:mat[][] = {{1, 1, 1},{1, 1, 0},{1, 0, 1}}Output:2On clearly observing the image above, it can be seen that the mirror ca...

  一次取所有组合的乘积总和(1 到 n)

📅  最后修改于: 2021-09-17 06:49:51        🧑  作者: Mango

给定 N,我们必须找到一次从 1 到 N 的所有组合的乘积之和。简单来说,我们必须找到所有组合的乘积之和,一次取 1 个,然后一次取 2 个,然后一次取 3 个,直到一次 N。如果仔细考虑这个问题,较大的 N 值可能会导致产生多种组合。例子:蛮力方法是生成所有组合,然后找到它们的乘积和总和。递归可以产生一次 x 的组合。示例:N = 4 一次取 3 个C++JavaPython3C#Javascr...

  威尔士鲍威尔图着色算法

📅  最后修改于: 2021-09-17 06:49:59        🧑  作者: Mango

在图论中,顶点着色是一种标记每个单独顶点的方法,使得没有两个相邻的顶点具有相同的颜色。但是我们需要找出满足给定条件所需的颜色数量。不希望有多种颜色或标签。所以,我们有一个叫做 welsh Powell 算法的算法,它给出了我们需要的最小颜色。该算法还用于查找图的色数。这是一种迭代贪婪方法。色数:需要 K 种不同颜色才能正确着色的图 G,而且不少,称为 K 色图,数 K 称为图 G 的色数。威尔士鲍...

  最大的可分对子集

📅  最后修改于: 2021-09-17 06:50:05        🧑  作者: Mango

给定一个由 n 个不同元素组成的数组,找到最大子集的长度,使得子集中的每一对都使得该对中较大的元素可以被较小的元素整除。例子:这可以使用动态规划解决。我们从最后遍历排序后的数组。对于每个元素 a[i],我们计算 dp[i],其中 dp[i] 表示最大可分子集的大小,其中 a[i] 是最小元素。我们可以使用从 dp[i+1] 到 dp[n-1] 的值计算数组中的 dp[i]。最后,我们从 dp[] ...