Дано целое число A, сгенерировать квадратную матрицу, заполненную элементами от 1 до A ^ 2 в спиральном порядке - PullRequest
0 голосов
/ 14 апреля 2020
vector<vector<int> > Solution::generateMatrix(int A) {
    int n=A,i,j;
    vector<vector<int> > ans(n);
    for(i=0; i<n; i++)
        ans[i] = vector<int> (n,0);

    while(1){
        while(j+1 < n && ans[i][j+1] == 0){
            ans[i][++j] = i+j+1;
        }
        while(i+1 < n && ans[i+1][j] == 0){
            ans[++i][j] = i+j+1;
        }
        while(j-1 >= 0 && ans[i][j-1] == 0){
            ans[i][--j] = i+j+1;
        }
        while(i-1 >= 0 && ans[i-1][j] == 0){
            ans[--i][j] = i+j+1;
            continue;
        }
        if(n%2 == 0 && i == n/2+1 && j == n/2)
            break;
        if(n%2 == 1 && i == n/2 && j == n/2)
            break;
    }

    return ans;
}

Это мой код, который выдает ошибку во время выполнения при выполнении. Где я превышаю границы индекса массива? Или есть какая-то другая ошибка, которую я наблюдаю?

...