代码中出错的地方

// 棋盘边长N,返回所有的合适的放置方案
vector<vector<string>> solveNQueens(int n) {
     // board棋盘,初始化为空
     vector<string> board(n,string(n,'.'));
     if(backtrack(board,0))
         return res;         
 }
 // 就在最后这个}这里报错了

报错是什么意思?

字符5:错误:非空函数未在所有控制路径中返回值[-Werror,-Wreturn-type]
}
^
产生1个错误。

白话解释

只在backtrack(board,0)是true时,会返回res来符合函数的返回类型vector<vector>。没有考虑到backtrack(board,0)是false的情况,即「没有考虑到所有的情况」。

改bug

 // 棋盘边长N,返回所有的合适的放置方案
 vector<vector<string>> solveNQueens(int n) {
     // board棋盘,初始化为空
     vector<string> board(n,string(n,'.'));
     if(backtrack(board,0))
         return res;
     else
         return {{}};//表示出来false的路怎么走          
 }

撒花~

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐