主要利用回溯,如下见注释
class Solution {
bool Find(vector<int>& v,int sit,map<int, int>& m, int n,bool& flag)
{
flag = true;
for (int i = 1; i <= n; ++i)//判断每一个数是否都填入
if (m[i] != 0)
flag = false;
//两种情况返回true:1.找到答案 2.当前坐标溢出即所有数字已经排列完毕
if (flag || sit >= (2 * n - 1)) return