leetcode #52 in cpp
来源:互联网 发布:二手车估价软件 编辑:程序博客网 时间:2024/04/30 14:35
Follow up for N-Queens problem.
Now, instead outputting board configurations, return the total number of distinct solutions.
This question is simply to calculate how many distinct solution. Since we have already get the distinct solutions from #51. We simply count the valid solutions instead of outputting the board as is done in #51.
Code:
class Solution {public: int totalNQueens(int n) { vector<int> queen_row_ind; return solve(n-1,n, queen_row_ind);//start from n-1th column to 0th column } int solve(int cur_col,int n, vector<int> &queen_row_ind){ int res = 0; if(cur_col < 0){ return 1; } for(int i = 0; i < n; i ++){ if(isValid(queen_row_ind, i, cur_col, n)){//check if we can put a queen here queen_row_ind.push_back(i); res+=solve(cur_col-1, n,queen_row_ind);//calculate distinct solutions queen_row_ind.pop_back(); } } return res; } bool isValid(vector<int> &queen_row_ind, int row, int col, int n){ for(int i = 0; i < queen_row_ind.size(); i ++){ int temp_row = queen_row_ind[i]; int temp_col = n-1-i; //check diag and anti_diag and row if(abs(temp_row - row) == abs(temp_col - col)|| temp_row == row) return false; } return true; }};
0 0
- leetcode #52 in cpp
- leetcode #12 in cpp
- Leetcode #13 in cpp
- Leetcode #14 in cpp
- leetcode %15 in cpp
- leetcode #16 in cpp
- leetcode #17 in cpp
- leetcode #18 in cpp
- leetcode #20 in cpp
- leetcode #21 in cpp
- leetcode #22 in cpp
- leetcode #23 in cpp
- leetcode #24 in cpp
- leetcode #25 in cpp
- leetcode #26 in cpp
- leetcode #27 in cpp
- leetcode #28 in cpp
- leetcode #29 in cpp
- 第24课:使用MAT动态分析Spark应用程序初体验
- Tomcat配置与优化(内存、并发、管理)
- 我花10万学费买到这12张PPT
- 手把手教你制作一款iOS越狱App,伪装微信位置
- js学习笔记(严格模式)
- leetcode #52 in cpp
- ACM第三次练习—1007
- 第十四周项目 1 排序函数模板
- 第五届河南省程序设计大赛
- C++11智能指针
- Linux I2C子系统分析之(一) ----- 用GPIO模拟I2C总线
- java synchronized静态同步方法与非静态同步方法,同步语句块
- 正则表达式在文本过滤中的使用
- 比例矩形RatioLayout