{///'title///': ///'C++ N皇后问题代码优化建议 - 找出代码中的错误///', ///'description///': ///'本文分析了一份C++代码,该代码旨在解决N皇后问题,并指出了代码中存在的多个问题,包括头文件使用、全局变量、数组大小、初始化、逻辑错误等。并给出了针对这些问题的优化建议。///', ///'keywords///': ///'C++, N皇后问题, 代码优化, 错误分析, 算法, 全局变量, 数组大小, 初始化, 逻辑错误, 递归///', ///'content///': ///'#include//nusing namespace std;//n//nclass Solution{//nprivate://n //n int** checkboard;//n size_t thisRow;//n size_t size;//n //n void reset(size_t n){//n checkboard = new int*[n];//n for (size_t i = 0; i < n; ++i) {//n checkboard[i] = new int[n];//n }//n memset(checkboard, 0, sizeof(int) * n * n);//n thisRow = 0;//n size = n;//n }//n //n bool addQueen(size_t loc){//n int& target = checkboard[thisRow][loc];//n if(target == 0){//n target = -1; //标记皇后//n //n for(size_t i = 0; i < size; ++i){//n if(thisRow + i < size && loc + i < size) checkboard[thisRow + i][loc + i]++; //棋子右下//n if(thisRow - i >= 0 && loc - i >= 0) checkboard[thisRow - i][loc - i]++; //棋子左上//n if(thisRow + i < size && loc - i >= 0) checkboard[thisRow + i][loc - i]++; //棋子左下//n if(thisRow - i >= 0 && loc + i < size) checkboard[thisRow - i][loc + i]++; //棋子右上//n if(thisRow < size) checkboard[thisRow][i]++; //棋子左右//n if(loc < size) checkboard[i][loc]++; //棋子上下//n }//n thisRow++;//n if(thisRow >= size){//n for(size_t i = 0; i < size; ++i){//n for(size_t j = 0; j < size; ++j)//n if(checkboard[i][j] == -1){//n cout << j+1 << ' ';//n break;//n }//n cout << endl;//n }//n return false;//n }//n return true;//n } else//n return false;//n }//n void next(){//n for(size_t i = 0; i < size; ++i){//n if(addQueen(i))//n next();//n }//n }//npublic://n void solve(size_t n){//n reset(n);//n next();//n for (size_t i = 0; i < n; ++i) {//n delete[] checkboard[i];//n }//n delete[] checkboard;//n }//n};//n//n//nint main(){//n Solution solution;//n size_t x;//n cin >> x;//n if (x > 0) {//n solution.solve(x);//n } else {//n cout << ///'输入的n必须大于0///' << endl;//n }//n return 0;//n}//n/

C++ N皇后问题代码优化建议 - 找出代码中的错误

原文地址: https://www.cveoy.top/t/topic/pBhV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录