Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.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
Java 股票最大化算法中的指数越界_Java_C# - Fatal编程技术网

Java 股票最大化算法中的指数越界

Java 股票最大化算法中的指数越界,java,c#,Java,C#,我已将以下内容尽可能地从Java翻译成C: 及 我得到的索引超出了数组的界限。错误我理解这个错误的意思,但我不知道该如何修复它。我花了很多时间才理解这段代码的第一部分,但对于第二部分,我感到不知所措 另外,JavapollFirst()方法的C#等价物是什么?可能是因为这一行 public void printTrans(double[,] dp, double[] prices, int K) { int i = K - 1;

我已将以下内容尽可能地从Java翻译成C:

我得到的
索引超出了数组的界限
。错误我理解这个错误的意思,但我不知道该如何修复它。我花了很多时间才理解这段代码的第一部分,但对于第二部分,我感到不知所措


另外,Java
pollFirst()
方法的C#等价物是什么?

可能是因为这一行

 public void printTrans(double[,] dp, double[] prices, int K)
        {
            int i = K - 1;
            int j = prices.Length; // <=== this line is the cause
或者,您需要更改创建阵列的方式

 var dp = new double[K + 1, prices.Length]; // <-- prices.Length would have to change here

var dp=new double[K+1,prices.Length];//你得到的错误是哪一行?@MiguelSanchez我编辑了答案以显示错误发生的位置。假设你使用的是.NET,如果不是null,则调用错误发生的原因是你的
j
变量超出了2D数组的边界,请更正您的代码以确保它在限制范围内,因为我觉得自己很笨。谢谢你的帮助!
 for (int z = j - 1; z >= 0; z--)
  {
   if (dp[i - 1, z] - prices[z] == maxDiff)
 public void printTrans(double[,] dp, double[] prices, int K)
        {
            int i = K - 1;
            int j = prices.Length; // <=== this line is the cause
int j = prices.Length - 1;
 var dp = new double[K + 1, prices.Length]; // <-- prices.Length would have to change here