首页 > TAG信息列表 > dynamic-programming

java-如何计算矩阵中最小和为[0,0]到[M,N]的路径?

我需要使用矩阵的最小和求和来计算从[0,0]到[M,N]的路径? 我找到了这样的链接https://www.programcreek.com/2014/05/leetcode-minimum-path-sum-java/,但“动态编程”选项却根本不清楚. 我试图用BFS算法自己实现它,但这是一个缓慢的解决方案 public int minPathSum(final int[][]

如何在Java中实现此等式?

好的,这更多是一个后续问题:How to compute optimal paths for traveling salesman bitonic tour? 首先,对于旅行推销员问题的双向旅行,我具有以下重复关系: (a) When i = 1 and j = 2, l(i; j) = dist(pi; pj ) (b) When i < j - 1; l(i; j) = l(i; j - 1) + dist(pj-1; pj) (c) Wh

java-将基本的递归算法转换为动态的自底向上制表算法

问题陈述:给定一个数字序列,计算给定数字序列的可能解码. 例子: 12 gives 2 for: ‘AB’ and ‘L’ 和 123 gives 3 for: ‘ABC’, ‘LC’ and ‘AW’ 这是我的尝试: import java.util.*; public class decodingcount { static int calls = 0; static Map<Integer, Strin

Python中最长的递增子序列(For vs While循环)

我正在解决这个leetcode问题link,我们应该在其中找到列表或数组中最长的递增子序列.我使用解决了问题 两种方法. >首先使用while循环>使用嵌套的for循环 Even though the value of (i, j) or looping is exactly same, but for the higher length inputs, the while loop progra

java-动态编程斐波那契数列

我正在学习动态编程在斐波那契数列中的应用,并有一个问题.这是供参考的代码: import java.math.BigInteger; import java.util.Arrays; public class FibonacciNumbersB { static BigInteger[] dp = new BigInteger[10000]; public static void main(String[] args) {

python-查找是否存在满足不等式的n / 2个元素的子集之和?

给定这些测试用例: votes = [6]*28 m = 10 votes1 = [5]*28+[6]*2 m1 = 10 votes2 = [5]*29+[10]*1 m2 = 10 votes3 = [8, 8, 16, 12, 12, 12, 4, 4, 12, 4, 4, 4, 8, 12, 12, 8, 8, 16, 12, 4, 16, 16, 12, 16, 12, 16, 12, 4, 16, 4, 4, 12, 4, 12, 12, 4, 16, 12, 16, 8] m3

最长公共子序列正确吗?

我只是编写了此实现,以便使用动态编程来找出longest increasing subsequence的长度.因此,对于输入为[10、22、9、33、21、50、41、60、80]的LIS为6,其中之一为[10、22、33、50、60、80]. 当我运行以下代码时,我得到正确答案为6,复杂度为O(n).这是正确的吗? def lis(a): dp_lis

python – 最大化消耗能量

提供三种类型的食物,即肉,蛋糕和比萨饼 和N个不同的商店出售它,我只能从中挑选一种食物每家商店.此外,我只能购买A,B和C号码中的物品,其中“A”表示肉类,总数为“A”个不同的商店(参见示例).我的任务是消耗食物,这样我就可以获得最大的能量.例, 10 <= number of stores

c – 无法从类型基类的指针访问派生类方法

我应该说明我对OOP有点新意.  我想要创建一个指向Person的类型指针向量,该向量具有GetName()方法,并从我的Player类中获取派生Person的方法GetSpg().我收到错误“GetSpg()不是Person的成员”.我的问题是:有没有办法从向量访问这两个函数,以便如果它指向一个人不显示该方法,但如果它

需要帮助提出Java中的Cake排序算法

好的,这就是我要做的 作为MCI(Mammoth Cakes Incorporated)的员工,您的工作是创造极大的 分层生日蛋糕.一个分层的生日蛋糕是通过采取小圆形蛋糕层和将它们堆叠在一起. 为了完成你的工作,你站在一条大传送带前面而不同大小的层在你面前经过.当你看到一个你喜欢的,你可以把它拿走传

java – 动态编程ArrayIndexOutOfBoundException

我得到了这个奇怪的异常,我真的不明白为什么..我试过调试,发现运行时出错了: opt[i][j] = Double.POSITIVE_INFINITY; 当i == 0且j == 1时,但这不应该发生,因为在这种情况下,opt是9×6矩阵. 这是我的代码: public class Versie3 { private int desCap; private int curr

如何使用递归在C#中获得硬币更改问题的最小可能组合

我是C#的新手,我有一个要解决的递归问题.我希望在这个硬币更换问题中获得最少数量的硬币.我已经为它调整了算法,但我需要返回一个类型为Change的对象,它将包含最小可能的组合. 我试图实现一个算法,但我有所有可能的组合. using System; using System.Collections.Generic; using S

java – 选择0/1背包中的物品,其中两个物品具有相同的好处|最大化价值并最小化重量

在0/1背包问题中,如果两个项目具有相同的值,如何选择项目.应选择体重较轻的值,如何检查该状况?我使用动态编程有以下功能. static int[] knapsack(int maxWeight, double[] weight, double[] value, int n) { //n = no. if items int i, w; double array[][] = new do

java – 动态编程实现不好或HashMap慢?

参见英文答案 > How do I write a correct micro-benchmark in Java?                                    11个我有两种我正在测试的Fibonacci方法.两者都应该是线性的.我不明白memoization或HashMap查找比我想象的要慢. 我知道递归函数不应

python – 生成最佳二叉搜索树(Cormen)

我正在阅读Cormen等人的“算法导论”(第3版)(PDF),关于最优二叉搜索树的第15.4节,但是在Python中为optimal_bst函数实现伪代码时遇到了一些麻烦. 以下是我尝试将最佳BST应用于的示例: 让我们将e [i,j]定义为搜索包含从i到j标记的密钥的最优二叉搜索树的预期成本.最后,我们希望计算e

java – 查找直方图中的所有矩形

我相信大多数人都听说过直方图问题中最大的矩形. –Link– 在我目前的项目中,我需要更改此算法,以便找到所有矩形,这些矩形不是该直方图中另一个矩形的较小子集. 这是我目前的程度.但我无法弄清楚如何不计算这里的子集. //time: O(n), space:O(n) public ArrayList<int[]>

java – 全局序列对齐动态编程在矩阵中找到最小值

我有2个序列,AACAGTTACC和TAAGGTCA,我正在尝试找到全局序列比对.我设法创建了一个2D数组并创建了矩阵,我甚至用半动态方法填充它. 这是填充矩阵的代码: void process() { for (int i = 1; i <= sequenceA.length; i++) { for (int j = 1; j <= sequenceB.length; j++)

c# – 查找所有k大小的子集,其中s为n大小的重复未排序正整数

请注意,这是C#.NET 2.0项目(Linq不允许)所必需的. 我知道这里已经提出了非常类似的问题并且我已经生成了一些工作代码(见下文)但是仍然想知道如何在k和s条件下更快地使算法更快. 这是我到目前为止所学到的: 动态编程是查找ONE(不是所有)子集的最有效方法.如果我错了,请纠正我.有没有

python – 使用动态编程的列表分区

我在这里发布了一些与我一直在尝试的项目相关的内容,并且我一直在设计问题并且必须从头开始设计.所以我想知道我是否可以发布我想要做的事情,有人可以帮助我理解我如何能得到我想要的结果. 背景: 我是编程和尝试学习的新手.所以我采取了一个让我感兴趣的项目,其中涉及基本上列表并使

java – 使用动态编程删除中间元素的三元组产品的最小总和

我给出了一系列N个数(4≤N≤150).挑选一个索引i(0

python – 按照产品顺序获取列表的每个可能子集的算法,无需构建和排序整个列表(即生成器)

实际上,我有一组具有概率的对象,我想看看它们中的每一个可能的组,按照它们是否可能的假设它们是独立的可能性 – 即按照从的顺序降序子集元素的乘积 – 或者如果概率相同则按长度顺序(使得(1,0.5)在(0.5)之后). 示例:如果我有[1,0.5,0.1]我想要[(),(1),(0.5),(1,0.5),(0.1),(1,0.1),

python – 检查是否可以进行分词

这是this response的后续问题以及用户发布的伪代码算法.由于它的年龄,我没有对这个问题发表评论.我只想验证一个字符串是否可以拆分成单词.该算法不需要实际拆分字符串.这是相关问题的回复: Let S[1..length(w)] be a table with Boolean entries. S[i] is true if the word w[

递归地在python中实现’最小硬币数’

此问题与here中提出的问题相同. 给出一个硬币列表,它们的值(c1,c2,c3,… cj,…)和总和i.找到总和为i的最小硬币数量(我们可以使用我们想要的一种类型的硬币),或者报告不可能以这样的方式选择硬币,使得它们总和为S. 我昨天刚刚介绍了动态编程,我试图为它编写代码. # Optimal substr

Python中的多维/多变量动态时间规整(DTW)库/代码

我正在研究时间序列数据.可用数据是多变量的.因此,对于每个时间实例,有三个数据点可用. 格式: | X | Y | Z | 因此,将实时生成上述格式的一个时间序列数据.我试图在另一个时间序列基础数据中找到这个实时生成的时间序列的良好匹配,该数据已经存储(其大小更大并且以不

java – 执行所有M操作所产生的数组中的最大元素

对于初始化为0的N个元素的数组,我们给出了一系列M个操作的排序(p; q; r).操作(p; q; r)表示应将整数r加到所有数组元素A [p]; A [p 1]; :::; A [q].您将输出执行所有M操作所产生的数组中的最大元素.有一个天真的解决方案,只需执行所有操作,然后返回最大值,需要O(MN)时间.我们正在寻