回溯算法之 N皇后问题



注意到上面程序中判断第i列是否能放当前cur行的皇后的效率比较低,可以改进。

用一个全局变量vis[2][ ] 来保存某列、某主对角线、某副对角线已经被皇后占用。

这样就可以直接判断第i行是否可以放当前的皇后了。


第一次写这个程序时将循环计数变量i,j误设置为全局变量,导致程序运行结果不正确。这是一个递归程序,i,j应该为局部变量,才不会导致进一步递归时程序破坏上一次递归栈的局部数据!!



参考文献:《算法竞赛入门经典》 刘汝佳 编著


posted @ 2012-03-28 20:42  hazir  阅读(288)  评论(0编辑  收藏  举报

一个代码可以创造一个世界,也可以毁灭一个世界!