LeetCode - 51. N-Queens

时间:2022-08-30 16:35:53

51. N-Queens

Problem's Link

----------------------------------------------------------------------------

Mean:

N-Queen问题.

analyse:

dfs基本功.

Time complexity: O(N)

view code

1.第一发超时了,回过头来看看自己像LeetCode - 51. N-Queensshi一样的代码也是醉了.

);
       );
           ; )) --x,++y;
       while(x<n && y)
       {
           if(mat[x][y]=='Q' && (!(x==row && y==col)))
               return false;
           ++x,--y;
       }
       return true;
   }
   void __init(int n)
   {
       res.clear();
       mat=*(new vector<string>(n,string(n,'.')));
   }
private:
   vector<string> mat;
   vector<vector<string>> res;
};

2.优化了dfs调用和check()函数,效率提升了一个档次.

; ; ; ;; && j<n;--i,++j)
           if(mat[i][j]=='Q')
               return false;
       return true;
   }
   void __init(int n)
   {
       res.clear();
       mat=*(new vector<string>(n,string(n,'.')));
   }
private:
   vector<string> mat;
   vector<vector<string>> res;
};