日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

34 N皇后问题Ⅱ

發布時間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 34 N皇后问题Ⅱ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原題網址:https://www.lintcode.com/zh-cn/old/problem/n-queens-ii/

34. N皇后問題 II?

討論區?

根據n皇后問題,現在返回n皇后不同的解決方案的數量而不是具體的放置布局。

您在真實的面試中是否遇到過這個題?? Yes 樣例

比如n=4,存在2種解決方案

標簽? Zenefits?遞歸 方法同N皇后問題,只不過不生成解決方案而是返回解決方法的個數。 1.遞歸 AC代碼: class Solution { public:/*** @param n: The number of queens.* @return: The total number of distinct solutions.*/bool canPlaceQ(int row,int col, int * position,int n) {for (int i=0;i<row;i++){if (position[i]==col||abs(row-i)==abs(col-position[i])){return false;}}return true; }void placeQ(int &count,int row,int *position,int n) {if (row==n){++count;}else{for (int j=0;j<n;j++){if (canPlaceQ(row,j,position,n)){position[row]=j;placeQ(count,row+1,position,n);}}} }int totalNQueens(int n) {int count=0;if (n<=0){return 0;}int *position=new int[n];for (int i=0;i<n;i++){position[i]=-1;}int row=0;placeQ(count,row,position,n);return count; } };

2.非遞歸

AC代碼:

class Solution { public:/*** @param n: The number of queens.* @return: The total number of distinct solutions.*/bool canPlaceQ(int row,int col, int * position,int n) {for (int i=0;i<row;i++){if (position[i]==col||abs(row-i)==abs(col-position[i])){return false;}}return true; }void placeQ(int &count,int row,int *position,int n) {int i=0,j=0;while(i<n){while(j<n){if (canPlaceQ(i,j,position,n)){position[i]=j;j=0;break;}else{++j;}}if (position[i]==-1){if (i==0){break;}--i;j=position[i]+1;position[i]=-1;//注意清空上一行的位置!!;continue;}if (i==n-1){++count;j=position[i]+1;//不能用++j,因為尋找到n-1行的列位置后j被重置為0;position[i]=-1;continue;}++i;}}int totalNQueens(int n) {int count=0;if (n<=0){return 0;}int *position=new int[n];for (int i=0;i<n;i++){position[i]=-1;}int row=0;placeQ(count,row,position,n);return count; }};

?

轉載于:https://www.cnblogs.com/Tang-tangt/p/9061556.html

總結

以上是生活随笔為你收集整理的34 N皇后问题Ⅱ的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。