题目来源:https://leetcode.cn/problems/check-knight-tour-configuration/
![](https://img-blog.csdnimg.cn/img_convert/158f623582e4b71edb91133bacbd737c.png)
![](https://img-blog.csdnimg.cn/img_convert/04ac76fe10011c44676320def5421e67.png)
C++题解:声明一个n*n长的数组ind,读取grid[ii][jj]中的元素x,即为第x步。在新数组ind的第x位处存放{ii,jj},之后判断第x步和第x+1步之间的ii和jj差绝对值的和是否为3,则知道是否骑士有效巡视。
class Solution {
public:
bool checkValidGrid(vector<vector<int>>& grid) {
bool flg = true;
int len = grid.size();
vector<vector<int > > ind(len*len, vector<int>(2));
int loc = 0;
if(grid[0][0] != 0) return false;
for(int ii = 0; ii < len; ii++){
for(int jj = 0; jj < len; jj++){
loc = grid[ii][jj];
ind[loc][0] = ii;
ind[loc][1] = jj;
}
}
for(int kk = 0; kk < len * len-1; kk++){
if(abs(ind[kk][0] - ind[kk+1][0]) + abs(ind[kk][1] - ind[kk+1][1]) != 3) return false;
}
return flg;
}
};