Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 什么是一种有效的动态规划算法来最小化移除两个相邻元素的阵列的总成本?_Arrays_Algorithm_Dynamic Programming_Minimization - Fatal编程技术网

Arrays 什么是一种有效的动态规划算法来最小化移除两个相邻元素的阵列的总成本?

Arrays 什么是一种有效的动态规划算法来最小化移除两个相邻元素的阵列的总成本?,arrays,algorithm,dynamic-programming,minimization,Arrays,Algorithm,Dynamic Programming,Minimization,我试图设计一种高效的动态规划算法,该算法在给定长度为n的整数数组和可删除整数数k的限制的情况下,通过删除数组中的元素,使数组的总成本(即整数之和)最小化,这样就不会有两个,阵列中的连续元素将被删除。我认为这基本上与最大化我删除的整数总量的成本相同,但我不能完全确定。坦率地说,我完全陷入了算法的递归步骤 编辑:删除的元素数可以小于或等于k的输入。是的,您是对的,删除元素和的最大化等于其余元素的最小化。但解决方案基本相同 复发: MaxDel(i, m) = Max(A[i] + MaxDel(i+

我试图设计一种高效的动态规划算法,该算法在给定长度为n的整数数组和可删除整数数k的限制的情况下,通过删除数组中的元素,使数组的总成本(即整数之和)最小化,这样就不会有两个,阵列中的连续元素将被删除。我认为这基本上与最大化我删除的整数总量的成本相同,但我不能完全确定。坦率地说,我完全陷入了算法的递归步骤


编辑:删除的元素数可以小于或等于k的输入。

是的,您是对的,删除元素和的最大化等于其余元素的最小化。但解决方案基本相同

复发:

MaxDel(i, m) = Max(A[i] + MaxDel(i+2, m+1), MaxDel(i+1, m)) if (m < k and i < N) else 0
MaxDel(i,m)=Max(A[i]+MaxDel(i+2,m+1),MaxDel(i+1,m)),如果(m

描述:我们可以删除第i个元素,在这种情况下,我们必须省略i+1并转到i+2,或者我们可以省略第i个元素并转到下一个。当我们删除了k个元素或索引超出数组时停止。

是的,您是对的,删除元素和的最大化等于其余元素的最小化。但解决方案基本相同

复发:

MaxDel(i, m) = Max(A[i] + MaxDel(i+2, m+1), MaxDel(i+1, m)) if (m < k and i < N) else 0
MaxDel(i,m)=Max(A[i]+MaxDel(i+2,m+1),MaxDel(i+1,m)),如果(m

描述:我们可以删除第i个元素,在这种情况下,我们必须省略i+1并转到i+2,或者我们可以省略第i个元素并转到下一个。当我们删除了k个元素或索引超出数组时停止。

如果k=2,并且我们有数组[10,6,7,10,8,6,9],这仍然有效吗?我认为只需要删除10和7,但应该同时删除这两个10,以使解决方案达到最优。另外,被移除的元素的数量可以等于k,我想我应该已经声明了。是的,这会起作用。跳过当前条目后,选择下一个条目是可选的。重复允许连续多次跳过。@user3386109如何?在我看来,递归必须遍历数组的每个元素,并对[自身与其i+2邻居的和]和[其i+1邻居]执行检查;在找到这两个元素的最大值后,它将删除i处的元素,然后转到i+2处的元素或i+1处的元素,并执行相同的检查。@iHeartCode124递归取最大值:1)跳过一个元素后,当前元素与最佳可能答案之和,或者2)从下一个元素开始的最佳答案。在这两种情况下,都不需要使用下一个可用元素。在这种情况下,我不知道这是否会导致一个专门的“动态规划”解决方案,该解决方案只计算一次解;递归获取MaxDel的开销太大。如果k=2,并且我们有数组[10,6,7,10,8,6,9],这仍然有效吗?我认为只需要删除10和7,但应该同时删除这两个10,以使解决方案达到最优。另外,被移除的元素的数量可以等于k,我想我应该已经声明了。是的,这会起作用。跳过当前条目后,选择下一个条目是可选的。重复允许连续多次跳过。@user3386109如何?在我看来,递归必须遍历数组的每个元素,并对[自身与其i+2邻居的和]和[其i+1邻居]执行检查;在找到这两个元素的最大值后,它将删除i处的元素,然后转到i+2处的元素或i+1处的元素,并执行相同的检查。@iHeartCode124递归取最大值:1)跳过一个元素后,当前元素与最佳可能答案之和,或者2)从下一个元素开始的最佳答案。在这两种情况下,都不需要使用下一个可用元素。在这种情况下,我不知道这是否会导致一个专门的“动态规划”解决方案,该解决方案只计算一次解;递归获取MaxDel的开销太大。