leetcode 59.螺旋矩阵一直过不了

我是看代码随想录的视频得到的思路,
原题如下:

img

我写的代码如下:

class Solution {
public:
    vectorint>> generateMatrix(int n) {
        vectorint>> matrix(n,vector<int>(n,0));
        int startx = 0,starty = 0,offset=1;
        int i=0,j=0;
        int count=1;
        int times = n/2;
        while(times--){
            i = startx;
            j = starty;
            for(j=starty;j<n-offset;++j)
                matrix[startx][j]=count++;
            for(i=startx;i<n-offset;++i)
                matrix[i][j]=count++;
            for(;j>starty;j--)
                matrix[i][j]=count++;
            for(;i>startx;i--)
                matrix[i][j]=count++;
            starty++; startx++;
            offset++;
        }
        if(n%2==1)
            matrix[times][times] = n*n;
        return matrix;
    }
};

报错如下:

img