99国产精品欲av蜜臀,可以直接免费观看的AV网站,gogogo高清免费完整版,啊灬啊灬啊灬免费毛片

網易首頁 > 網易號 > 正文 申請入駐

又一家大型IT培訓機構跑路。

0
分享至

專欄:50多種數據結構徹底征服

專欄:50多種經典圖論算法全部掌握

據澎湃新聞網報道,長沙童程童美少兒編程培訓機構一夜之間人去樓空。童程童美大家可能聽到的比較少,但如果說起達內教育,大家聽過的可能就比較多了。達內教育是2001年8月由加拿大海外專業人士在加拿大多倫多成立,在2015年推出少兒編程,2024年2月達內教育正式更名為童程童美。

達內教育最輝煌的時代可能是2008年到2015年,我曾經有不少同學在那里培訓過,剛開始的時候主要是以培訓java為主,2012,2013年移動互聯網火的一塌糊涂,他們又開始培訓Android和IOS,后來又搞大數據培訓和少兒編程培訓,沒想到這么快就不行了。




--------------下面是今天的算法題--------------

來看下今天的算法題,這題是LeetCode的第51題:N 皇后。

問題描述

來源:LeetCode第51題

難度:困難

按照國際象棋的規則,皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。n 皇后問題研究的是如何將 n 個皇后放置在 n×n 的棋盤上,并且使皇后彼此之間不能相互攻擊。

給你一個整數 n ,返回所有不同的 n 皇后問題的解決方案。每一種解法包含一個不同的 n 皇后問題的棋子放置方案,該方案中 'Q' 和 '.' 分別代表了皇后和空位。

示例1:



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

示例2:


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

  • 1 <= n <= 9

問題分析

n皇后也就是在每行放一個皇后,并且每列以及斜對角都不能出現重復的皇后。放的時候也就是不斷嘗試的過程,所以它是一道經典的 回溯算法 題,關于回溯算法我在很久之前總結了一個模板,可以看下 。

對于每一行會有 n 個選擇,所以我們可以把它看作是一棵 n 叉樹,當然有些選擇可能會出現沖突,我們需要把它剪掉,如果放到最后一行沒有沖突,說明當前這個選擇是有效的,把它保存下來。當 n 等于 4 的時候會有兩種結果,如下圖所示,如果全部畫出來,圖會比較大,所以還一種被省略了。


JAVA:

public List
       
 > solveNQueens( int n) {      char[][] chess =  new  char[n][n];      // 初始化棋盤      for ( int i =  0; i < n; i++)          for ( int j =  0; j < n; j++)             chess[i][j] =  '.';     List > ans =  new ArrayList<>(); // 返回的結果     backtrack(ans, chess,  0); // 回溯算法      return ans; } private void backtrack(List > ans,  char[][] chess,  int row)  {      // 棋盤所有的行都遍歷完了,說明找到一個可行的解,把它加入到集合ans中      if (row == chess.length) {         ans.add(construct(chess));          return;     }      // 相當于一顆n叉樹      for ( int col =  0; col < chess.length; col++) {          // 判斷當前位置是否可以放皇后          if (valid(chess, row, col)) {              // 如果在當前位置放皇后不發生攻擊,就在當前位置放個皇后             chess[row][col] =  'Q';             backtrack(ans, chess, row +  1);  // 遞歸,下一行             chess[row][col] =  '.';  // 撤銷選擇         }     } } // row表示第幾行,col表示第幾列 private boolean valid(char[][] chess, int row, int col) {      // 判斷當前列有沒有皇后,因為他是一行一行往下走的,只需要檢查走過的行數即可      for ( int i =  0; i < row; i++) {          if (chess[i][col] ==  'Q')              return  false;     }      // 判斷當前坐標的右上角有沒有皇后      for ( int i = row -  1, j = col +  1; i >=  0 && j < chess.length; i--, j++) {          if (chess[i][j] ==  'Q')              return  false;     }      // 判斷當前坐標的左上角有沒有皇后      for ( int i = row -  1, j = col -  1; i >=  0 && j >=  0; i--, j--) {          if (chess[i][j] ==  'Q')              return  false;     }      return  true; } // 把數組轉為list private List   construct (char[][] chess)  {     List  path =  new ArrayList<>();      for ( char[] ches : chess)         path.add( new String(ches));      return path; }

C++:

public:
    vector

 > solveNQueens(int n) {         vector

  chess(n, string(n, '.')); // 初始化棋盤         vector

 > ans ;// 返回的結果         backtrack(ans, chess, 0);// 回溯算法         return ans;     }      void backtrack(vector

 > &ans, vector

 & chess, int row) {         // 棋盤所有的行都遍歷完了,說明找到一個可行的解,把它加入到集合ans中         if (row == chess.size()) {             ans.push_back(chess);             return;         }         // 相當于一顆n叉樹         for (int col = 0; col < chess.size(); col++) {             // 判斷當前位置是否可以放皇后             if (valid(chess, row, col)) {                 // 如果在當前位置放皇后不發生攻擊,就在當前位置放個皇后                 chess[row][col] = 'Q';                 backtrack(ans, chess, row + 1); // 遞歸,下一行                 chess[row][col] = '.'; // 撤銷選擇             }         }     }     // row表示第幾行,col表示第幾列      bool valid(vector

 & chess, int row, int col) {         // 判斷當前列有沒有皇后,因為他是一行一行往下走的,只需要檢查走過的行數即可         for (int i = 0; i < row; i++) {             if (chess[i][col] == 'Q')                 return false;         }         // 判斷當前坐標的右上角有沒有皇后         for (int i = row - 1, j = col + 1; i >= 0 && j < chess.size(); i--, j++) {             if (chess[i][j] == 'Q')                 return false;         }         // 判斷當前坐標的左上角有沒有皇后         for (int i = row - 1, j = col - 1; i >= 0 && j >= 0; i--, j--) {             if (chess[i][j] == 'Q')                 return false;         }         return true;     }






筆者簡介

博哥,真名:王一博,畢業十多年, 作者,專注于 數據結構和算法 的講解,在全球30多個算法網站中累計做題2000多道,在公眾號中寫算法題解800多題,對算法題有自己獨特的解題思路和解題技巧,喜歡的可以給個關注,也可以 下載我整理的1000多頁的PDF算法文檔 。

特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
庫里承認進入歷史得分榜前十是他的目標,目前還差2903分

庫里承認進入歷史得分榜前十是他的目標,目前還差2903分

雷速體育
2025-07-26 11:39:10
330萬億躺在銀行睡大覺:數字很尷尬,現實很殘酷

330萬億躺在銀行睡大覺:數字很尷尬,現實很殘酷

大道微言
2025-07-23 15:23:47
青樓出身,無法生育被休,改嫁上將連生11子,人人敬重的廣東之母

青樓出身,無法生育被休,改嫁上將連生11子,人人敬重的廣東之母

柳絮憶史
2025-07-21 11:30:50
如果皇馬用維尼修斯換伊薩克,將會是四贏的絕妙方案,原因有三!

如果皇馬用維尼修斯換伊薩克,將會是四贏的絕妙方案,原因有三!

田先生籃球
2025-07-25 18:38:52
離開倒計時?庫明加已與國王高管見面 用薩里奇卡特1首輪報價勇士

離開倒計時?庫明加已與國王高管見面 用薩里奇卡特1首輪報價勇士

醉臥浮生
2025-07-26 08:32:18
阿森納官宣第5簽,三條線都有補強!塔帥歐洲第6,新賽季首發浮現

阿森納官宣第5簽,三條線都有補強!塔帥歐洲第6,新賽季首發浮現

球場沒跑道
2025-07-25 16:16:13
美媒聚焦:射程800公里的中國霹靂-S導彈讓美軍壓力山大

美媒聚焦:射程800公里的中國霹靂-S導彈讓美軍壓力山大

楊風
2025-07-25 18:52:51
第一次感受到白醋的“殺傷力”,以為只能做菜,沒想到用途那么廣

第一次感受到白醋的“殺傷力”,以為只能做菜,沒想到用途那么廣

裝修秀
2025-07-24 11:55:03
汪小菲家保姆在臺北街頭直播,坦言大S對她很好,不然早辭職了

汪小菲家保姆在臺北街頭直播,坦言大S對她很好,不然早辭職了

小嵩
2025-07-26 15:42:06
不可復制的風流

不可復制的風流

深度報
2025-07-24 10:44:05
49國大佬將聚北京,93大閱兵名單藏著你所不知的門道

49國大佬將聚北京,93大閱兵名單藏著你所不知的門道

大道微言
2025-07-23 16:25:48
被開除的廚師透露,飯店里最“臟”的6道菜,內行人從來不吃!

被開除的廚師透露,飯店里最“臟”的6道菜,內行人從來不吃!

椰青美食分享
2025-07-26 11:20:11
還是沒有熬過楊振寧!陪伴21年后,冷凍9顆卵子的翁帆痛苦嗎?

還是沒有熬過楊振寧!陪伴21年后,冷凍9顆卵子的翁帆痛苦嗎?

明月聊史
2025-07-17 15:29:09
726罷免開始,藍營情勢大逆轉,賴清德難以自處,王金平何去何從

726罷免開始,藍營情勢大逆轉,賴清德難以自處,王金平何去何從

小彭聊社會
2025-07-26 14:36:03
郭麒麟,正式開除德云社。

郭麒麟,正式開除德云社。

人間頌
2025-07-26 12:48:28
報仇不隔夜?以色列挑戰一個中國原則后,外交部支持巴勒斯坦建國

報仇不隔夜?以色列挑戰一個中國原則后,外交部支持巴勒斯坦建國

小濤叨叨
2025-07-26 15:44:19
同性戀,收金條,保姆實名舉報,何炅央媒公開回應,發言惹人心疼

同性戀,收金條,保姆實名舉報,何炅央媒公開回應,發言惹人心疼

新語愛八卦
2025-07-25 17:37:02
胡適去世,眾人來悼,遺孀江冬秀卻當眾捶打遺體:死鬼胡適之啊

胡適去世,眾人來悼,遺孀江冬秀卻當眾捶打遺體:死鬼胡適之啊

海東傾
2025-07-23 12:03:16
李霄鵬:希望這場比賽能打出氣勢,給球迷奉獻一場精彩的比賽

李霄鵬:希望這場比賽能打出氣勢,給球迷奉獻一場精彩的比賽

懂球帝
2025-07-26 17:32:08
3天4個瓜!貪污國家財產、婚內出軌、賠光億萬家產,娛樂圈太炸裂

3天4個瓜!貪污國家財產、婚內出軌、賠光億萬家產,娛樂圈太炸裂

農村娛樂光哥
2025-07-25 12:11:18
2025-07-26 18:20:49
數據結構和算法
數據結構和算法
專門介紹和寫算法題解的號
238文章數 3關注度
往期回顧 全部

科技要聞

AI教父辛頓現身上海:人類如何不被AI殺掉

頭條要聞

高分考生被廈門大學國外分校誤錄取:已有16人決定復讀

頭條要聞

高分考生被廈門大學國外分校誤錄取:已有16人決定復讀

體育要聞

楊瀚森效力NBA期間 青島男籃將暫存球隊15號球衣

娛樂要聞

董璇首談保釋前夫細節!高云翔突然不回消息

財經要聞

劉煜輝:當下重要不是找確定性而是轉折點

汽車要聞

"得房率"超90% 全新嵐圖知音空間信息曝光

態度原創

時尚
健康
數碼
公開課
軍事航空

10樣回購N次的解饞小零食!好吃到嗦手指

呼吸科專家破解呼吸道九大謠言!

數碼要聞

AMD Magnus APU 圖形規格再曝:68 個計算單元,192-bit 位寬

公開課

李玫瑾:為什么性格比能力更重要?

軍事要聞

泰軍方向26國發函:柬埔寨率先開火

無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 咸阳市| 肥西县| 三门峡市| 博野县| 江西省| 南京市| 莒南县| 正阳县| 正蓝旗| 无极县| 探索| 阿克苏市| 宽城| 榕江县| 瑞丽市| 吴桥县| 交口县| 仁化县| 监利县| 乌拉特前旗| 玉屏| 新田县| 张家界市| 喀喇沁旗| 互助| 泾阳县| 永春县| 河津市| 德昌县| 海阳市| 遵化市| 清丰县| 商南县| 赤壁市| 运城市| 巴林左旗| 九寨沟县| 视频| 井研县| 南安市| 通山县|