如果所示,逆时针填充正方形,从1,2,3…到16,输入一个正方形的大小,填充。
比如输入4,正方形如上图,如果输入5,则是1,2,3…到25。
这道题,可以按照如图所示的方法,先构造最外一圈的数,123一组,456一组,789一组,101112一组,只需要注意到下标的变化,数字的更新即可。对于里面矩阵可以采用递归的写法。
void FillTheRectangle_1(vector<vector<int>>& v, int size, int beg, int num)
{
if (beg < 0 || size == 0)
return;
if (size == 1)
{
v[beg][beg] = num;
return;
}
//size >= 2
//左边
for (int i = 0; i < size -