put queens
class Solution { public: vector<vector<string>> v; void putqueen(int k,vector<int> &pos) { //cout<<" put queen"<< k<<endl; int n = pos.size(); if( k == n ) { string s(n,'.'); vector<string> tmp( pos.size(),s); for(int i=0;i<n;i++) tmp[i][pos[i]] = 'Q'; v.push_back(tmp); return; } for(int i=0;i<n;i++) { int j; for( j=0;j<k;j++) { if( i == pos[j] || i+k == j+pos[j] || k-i ==j- pos[j]) break; } if( j==k ) { pos[k] = i; putqueen(k+1,pos); } } return; } vector<vector<string> > solveNQueens(int n) { // Start typing your C/C++ solution below // DO NOT write int main() function v.clear(); if( n== 0 ) return v; vector<int> pos(n,-1); putqueen(0,pos); return v; } };
posted on 2013-07-05 17:46 jumping_grass 阅读(163) 评论(0) 收藏 举报
浙公网安备 33010602011771号