传递函数时出现运行时错误

时间:2020-05-28 07:05:59

标签: c++

我正在编写一个函数,该函数接受一个整数“ size”作为输入并返回一个二维矢量,该矢量从1螺旋填充到size * size。因此,我创建了4个附加功能来遍历左,右,下和上。除底部功能外,所有功能均正常工作。在这里,我提供了解决问题所需的全部代码的一部分。

错误:-由于运行时错误,您的提交停止了。例如:除以 零,数组索引超出范围,未捕获异常。

当我传递“ right”函数和“ bottom”函数时,出现运行时错误。问题出在功能上,但我无法解决。正确的功能顺利通过,但是底部功能出了问题。

void right(vector<vector<int>> &A,int &row,int &column,int &total_elements,int size)
{
    if(total_elements==0) return;
    while(A[row][column]==INT_MIN && column<size)
    {
        A[row][column]=1+A[row][column-1];
        column++;
        total_elements--;
    }
    column--;
    return;
}

void bottom(vector<vector<int>> &A,int &row,int &column,int &total_elements,int size)
{
    if(total_elements==0) return;
    while(A[row][column]==INT_MIN && row<l)
    {
        A[row][column]=1+A[row-1][column];
        row++;
        total_elements--;
    }
    row--;
    return;
}

vector<vector<int> > Solution::generateMatrix(int size) {
    int total_elements=size*size;
    vector< vector <int> > arr(size, vector <int> (size, INT_MIN));
    arr[0][0]=1;total_elements-=1;
    int row=0;
    int column=1;

    right(arr,row,column,total_elements,size);
    row++;

    bottom(arr,row,column,total_elements,size);
    column--;
    return arr;
}

0 个答案:

没有答案