由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请教n queen 问题的time complexity
相关主题
n queens II ,, 時間复杂度是多少?thank[合集] G家onsite面经
facebook电面题目写一个function判断一个数是不是2的整数次方
L家 Influencer 问题求讨论leetcode wordsearch的时间复杂度?
大家帮忙分析下leetcode一个题目的复杂度LeetCode上word search问题的几个例子不对
请问个算法复杂度facebook的面试题
interleave string 的题目请教一道leetcode的新题
请教个Amazo的题攒人品 storm8第一轮电面
L二电面据,附面经L家电面
相关话题的讨论汇总
话题: col话题: idx话题: int话题: res话题: dfs2
进入JobHunting版参与讨论
1 (共1页)
a********e
发帖数: 53
1
这种用dfs的时间复杂度,总是绕不清楚。
code如下,
分析时间复杂度哪种比较对?
一种是dfs一共执行了n!次,每次有n^2, 所以总共是O(n!n^2).
另一种是T(n)= nT(n-1) + n^2, 所以是? 我也不知道了。
////////////////////////////////////
bool PosOK(int col[], int idx){
for ( int i=0; i< idx; i++){
if (col[i]== col[idx] || (idx-i)== abs(col[idx] - col[i] ) )
return false;
}
return true;
}
void dfs2(int col[], int idx, vvs & res, int n){
//when there is a solution
if (idx==n){
string s(n, '.');
vs tmp(n, s);
for (int i=0; i< n; i++)
tmp[i][col[i]] = 'Q';
res.push_back(tmp);
}
//try different position for queen in row idx
for (int i=0 ;i < n; i++){
col[idx] = i;
//test if it is ok to put queen at position i
if (PosOK(col, idx) ){
dfs2(col, idx+1, res, n);
}
}
}
vvs PlaceQueen2(int n){
int col[n];
vvs res;
dfs2(col, 0, res, n);
return res;
}
l*****a
发帖数: 14598
2
每次n2从哪里来的?

【在 a********e 的大作中提到】
: 这种用dfs的时间复杂度,总是绕不清楚。
: code如下,
: 分析时间复杂度哪种比较对?
: 一种是dfs一共执行了n!次,每次有n^2, 所以总共是O(n!n^2).
: 另一种是T(n)= nT(n-1) + n^2, 所以是? 我也不知道了。
: ////////////////////////////////////
: bool PosOK(int col[], int idx){
: for ( int i=0; i< idx; i++){
: if (col[i]== col[idx] || (idx-i)== abs(col[idx] - col[i] ) )
: return false;

a********e
发帖数: 53
3
一个是for loop,还有一个是PosOK这个function
1 (共1页)
进入JobHunting版参与讨论
相关主题
L家电面请问个算法复杂度
palindrome partioning IIinterleave string 的题目
一个小题目请教个Amazo的题
请教个面试题L二电面据,附面经
n queens II ,, 時間复杂度是多少?thank[合集] G家onsite面经
facebook电面题目写一个function判断一个数是不是2的整数次方
L家 Influencer 问题求讨论leetcode wordsearch的时间复杂度?
大家帮忙分析下leetcode一个题目的复杂度LeetCode上word search问题的几个例子不对
相关话题的讨论汇总
话题: col话题: idx话题: int话题: res话题: dfs2