中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

做網(wǎng)站的網(wǎng)絡公司有哪些linux網(wǎng)站入口

做網(wǎng)站的網(wǎng)絡公司有哪些,linux網(wǎng)站入口,wordpress pdf 下載,學做網(wǎng)站有前途嗎題目 51. N 皇后 困難 相關(guān)標簽 數(shù)組 回溯 按照國際象棋的規(guī)則,皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。 n 皇后問題 研究的是如何將 n 個皇后放置在 nn 的棋盤上,并且使皇后彼此之間不能相互攻擊。 給你一個整數(shù) n &#xff0…

題目

51. N 皇后

困難

相關(guān)標簽

數(shù)組? ?回溯

按照國際象棋的規(guī)則,皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。

n?皇后問題?研究的是如何將?n?個皇后放置在?n×n?的棋盤上,并且使皇后彼此之間不能相互攻擊。

給你一個整數(shù)?n?,返回所有不同的?n?皇后問題?的解決方案。

每一種解法包含一個不同的?n 皇后問題?的棋子放置方案,該方案中?'Q'?和?'.'?分別代表了皇后和空位。

示例 1:

輸入:n = 4
輸出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]
解釋:如上圖所示,4 皇后問題存在兩個不同的解法。

示例 2:

輸入:n = 1
輸出:[["Q"]]

提示:

  • 1 <= n <= 9

思路和解題方法

首先,定義了一個名為 Solution 的類。其中:

  • ans:成員變量,用于記錄所有可行的 N 皇后方案;
  • backtracking:回溯函數(shù),用來嘗試放置 N 個皇后;
  • isvalid:函數(shù),用于檢查當前位置是否可放置皇后;
  • solveNQueens:主函數(shù),使用回溯法求解 N 皇后問題。

在 backtracking 函數(shù)中:

  • 當已經(jīng)成功放置 N 個皇后時,將當前的棋盤加入答案數(shù)組 ans 中。
  • 對于每一行,在第 col 列嘗試放置皇后,如果該格子可行,則標記上皇后,繼續(xù)向下一行進行搜索,搜索完后回溯到上一步位置并取消標記;
  • 搜索過程中,調(diào)用函數(shù) isvalid 進行當前位置是否可放的判斷。

在 isvalid 函數(shù)中:

  • 檢查當前列是否已經(jīng)有皇后;
  • 檢查左上方是否已經(jīng)有皇后;
  • 檢查右上方是否已經(jīng)有皇后;
  • 如果以上均未出現(xiàn)皇后,則說明該位置可放置皇后,返回真。

而在主函數(shù) solveNQueens 中:

  • 清空答案數(shù)組 ans,并定義初始棋盤狀態(tài) chessboard;
  • 調(diào)用回溯函數(shù) backtracking 在 chessboard 中查找所有可行的 N 皇后方案;
  • 返回答案數(shù)組 ans。

復雜度

????????時間復雜度:

????????????????O(n!)

算法的時間復雜度為 O(n!),其中 n 表示棋盤大小。因為每一行只能放置一個皇后,所以在搜索下一行的時候,需要排除已經(jīng)放置的皇后所在的列和兩條對角線上的位置,因此每一行可選的位置數(shù)是 n,總的搜索次數(shù)是 n×(n?2)×(n?4)×?1=n!。

????????空間復雜度

????????????????O(n^2)

算法的空間復雜度是 O(n2),因為需要使用一個 n×n 的二維數(shù)組 chessboard 來存儲棋盤狀態(tài),同時還需要使用一個二維數(shù)組 ans 來存儲所有可行的 N 皇后方案。

c++ 代碼

class Solution {
public:vector<vector<string>> ans;  // 存儲所有可行的 N 皇后方案void backtracking(int n, int row, vector<string> &chessboard){if (row == n)  // 若已成功放置 N 個皇后,將當前棋盤加入答案數(shù)組{ans.push_back(chessboard);return;}for (int col = 0; col < n; col++)  // 在當前行的每一列嘗試放置皇后{if (isvalid(row, col, chessboard, n))  // 若當前位置可放置皇后{chessboard[row][col] = 'Q';  // 放置皇后backtracking(n, row + 1, chessboard);  // 繼續(xù)下一行的搜索chessboard[row][col] = '.';  // 回溯到上一步,取消該位置的皇后標記}}}bool isvalid(int row, int col, vector<string> &chessboard, int n){for (int i = 0; i < row; i++){if (chessboard[i][col] == 'Q')  // 檢查當前列是否已經(jīng)有皇后return false;}for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--){if (chessboard[i][j] == 'Q')  // 檢查左上方是否已經(jīng)有皇后return false;}for (int i = row - 1, j = col + 1; i >= 0 && j < n; i--, j++){if (chessboard[i][j] == 'Q')  // 檢查右上方是否已經(jīng)有皇后return false;}return true;  // 當前位置可放置皇后}vector<vector<string>> solveNQueens(int n) {ans.clear();  // 清空答案數(shù)組vector<string> chessboard(n, string(n, '.'));  // 初始化棋盤backtracking(n, 0, chessboard);  // 調(diào)用回溯函數(shù)開始搜索return ans;  // 返回所有可行的 N 皇后方案}
};

覺得有用的話可以點點贊,支持一下。

如果愿意的話關(guān)注一下。會對你有更多的幫助。

每天都會不定時更新哦? >人<? 。

http://www.risenshineclean.com/news/57026.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)公司前景如何在百度上營銷
  • 網(wǎng)站開發(fā)論文結(jié)論百度游戲排行榜
  • 北京設(shè)計制作網(wǎng)站制作包頭網(wǎng)站建設(shè)推廣
  • 做個網(wǎng)站 多少錢網(wǎng)絡新聞發(fā)布平臺
  • 專業(yè)建設(shè)企業(yè)網(wǎng)站免費做網(wǎng)站的平臺
  • 正規(guī)網(wǎng)站開發(fā)公司seo公司排名教程
  • 制作購物網(wǎng)站怎么做seo網(wǎng)站關(guān)鍵詞優(yōu)化
  • dns設(shè)置 看國外網(wǎng)站百度應用下載
  • 網(wǎng)站制作百度網(wǎng)盤網(wǎng)絡推廣比較經(jīng)典和常用的方法有
  • wordpress tdk鄭州seo排名扣費
  • 彩票自己開盤做網(wǎng)站多地優(yōu)化完善疫情防控措施
  • 哪些網(wǎng)站可以做招商廣告持啊傳媒企業(yè)推廣
  • wordpress更改路徑湖北網(wǎng)站seo設(shè)計
  • 中國新聞社是央企嗎成都seo
  • 做網(wǎng)站可以申請國家補助嗎西安網(wǎng)站制作建設(shè)
  • 哪些網(wǎng)站是react做的企業(yè)培訓師資格證報考2022
  • 山東泰安最新疫情深圳搜狗seo
  • 網(wǎng)站建設(shè)報名系統(tǒng)是真的嗎蘇州seo快速優(yōu)化
  • 杭州哪里做網(wǎng)站好如何快速推廣網(wǎng)上國網(wǎng)
  • 1.網(wǎng)站建設(shè)基本流程是什么關(guān)鍵詞排名優(yōu)化技巧
  • 網(wǎng)站專題頁面設(shè)計欣賞網(wǎng)絡營銷是指
  • 企業(yè)信用網(wǎng)站建設(shè)網(wǎng)絡運營培訓哪里有學校
  • 微企免費網(wǎng)站建設(shè)制作網(wǎng)站要花多少錢
  • 班級網(wǎng)站源代碼下載關(guān)鍵詞查網(wǎng)址
  • thinkphp開發(fā)企業(yè)網(wǎng)站廣州seo網(wǎng)站推廣優(yōu)化
  • 做網(wǎng)站容易找工作嗎互聯(lián)網(wǎng)推廣有哪些方式
  • 怎么建設(shè)企業(yè)網(wǎng)站網(wǎng)絡推廣營銷
  • 濟南集團網(wǎng)站建設(shè)公司河南推廣網(wǎng)站
  • 做網(wǎng)站有2個前提條件 一個是網(wǎng)站如何做百度免費推廣
  • 開發(fā)安卓app關(guān)鍵詞優(yōu)化的發(fā)展趨勢