由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 谁帮我看看这个8皇后问题
相关主题
问个题offer里面position level的问题
Palantir面经2急问:H1b petition 时间 和 要求
FB电面求分析 (转载)BB的positiong给Entry Level是不是只有Financial Engineer
一个算法题目Entry Level EE Position Available
一个店面题一道M$面试题的解法...
类(class)的问题,如果两个类互相调用怎么办问道题
问两道leetcode上的jump game 题前段时间整理的随机算法
Splunk面经 (转载)请教一道题目
相关话题的讨论汇总
话题: output话题: level话题: int话题: position话题: num
进入JobHunting版参与讨论
1 (共1页)
c***g
发帖数: 472
1
可以算出部分结果来,但是到了后来,似乎死循环了,不能正常的结束
请问谁帮我看看,哪儿有个bug
/*
check whether [level, position] is OK
output stored the valid position so far between [0,level-1];
*/
bool check(int output[], int level, int position){

bool isOK = true;

for(int i = 0; i < level; i++) {

if( position == output[i]
|| i - output[i] == level - position
|| output[i] - i == position - level
|| i + output[i] == level + position) {
isOK = false;
break;
}
}

return isOK;
}
/*
try the next level
*/
void tryNext(int output[], int level) {

int NUM = 8;
if(level == NUM) {
dumpInt(output, NUM);
return;
}
for(int i = 0;i < NUM; i++) {

if(check(output, level, i)){
output[level] = i;
tryNext(output, level+1);
} else
continue;
}

return ;
}
void solveEightQueen(){

int output[0];
int visited[8][8];

for(int i = 0; i < 8; i++)
output[i] = 0;

tryNext(output, 0);

}
l*****a
发帖数: 14598
2
why so many conditions?
不是 abs(i-level)==abs(output[i]-position)|| output[i]==position
就可以了吗?

【在 c***g 的大作中提到】
: 可以算出部分结果来,但是到了后来,似乎死循环了,不能正常的结束
: 请问谁帮我看看,哪儿有个bug
: /*
: check whether [level, position] is OK
: output stored the valid position so far between [0,level-1];
: */
: bool check(int output[], int level, int position){
:
: bool isOK = true;
:

c***g
发帖数: 472
3
不对吧,如果你在 [1,5], 只能是[0,4],[2,6] 和 [3,7]
不能是[4,0] [5,1] [6,2] [7,3], 这几个点虽然是abs(i-level)==abs(output[i]-
position), 但是其实还是可以放的

【在 l*****a 的大作中提到】
: why so many conditions?
: 不是 abs(i-level)==abs(output[i]-position)|| output[i]==position
: 就可以了吗?

l*****a
发帖数: 14598
4
你举的例子满足我的条件?
[1,5] [5,1]不在对角线上?

【在 c***g 的大作中提到】
: 不对吧,如果你在 [1,5], 只能是[0,4],[2,6] 和 [3,7]
: 不能是[4,0] [5,1] [6,2] [7,3], 这几个点虽然是abs(i-level)==abs(output[i]-
: position), 但是其实还是可以放的

c***g
发帖数: 472
5
你说的是对的,谢谢你的指正,
但是,似乎不是bug所在啊

【在 l*****a 的大作中提到】
: 你举的例子满足我的条件?
: [1,5] [5,1]不在对角线上?

l*****a
发帖数: 14598
6
自己打几行log
看看程序在干什么呢

【在 c***g 的大作中提到】
: 你说的是对的,谢谢你的指正,
: 但是,似乎不是bug所在啊

f*****i
发帖数: 835
7
int output[0]; ??
c***g
发帖数: 472
8
this is a typo. but the problem is gone.
Thanks!
But would you tell me why?

【在 f*****i 的大作中提到】
: int output[0]; ??
l**********1
发帖数: 415
9
here
output[level] = i;
tryNext(output, level+1);
should be
output[level] = i;
tryNext(output, level+1);
output[level] = -1; //remove the newly placed queen
c***g
发帖数: 472
10
这个有影响么?

【在 l**********1 的大作中提到】
: here
: output[level] = i;
: tryNext(output, level+1);
: should be
: output[level] = i;
: tryNext(output, level+1);
: output[level] = -1; //remove the newly placed queen

B*******1
发帖数: 2454
11
应该没有影响。

【在 c***g 的大作中提到】
: 这个有影响么?
f*****i
发帖数: 835
12
My understanding is since you define as output[0],you didn't really 'reserve
' any memory. It's possible other part of the program using the same memory
and always set it to some value. So you get into a infinity loop.

【在 c***g 的大作中提到】
: this is a typo. but the problem is gone.
: Thanks!
: But would you tell me why?

1 (共1页)
进入JobHunting版参与讨论
相关主题
请教一道题目一个店面题
工作机会 (转载)类(class)的问题,如果两个类互相调用怎么办
整理的一些stl,auto_ptr的东西,求bless问两道leetcode上的jump game 题
申请大公司的一个position还是多个相关的positionsSplunk面经 (转载)
问个题offer里面position level的问题
Palantir面经2急问:H1b petition 时间 和 要求
FB电面求分析 (转载)BB的positiong给Entry Level是不是只有Financial Engineer
一个算法题目Entry Level EE Position Available
相关话题的讨论汇总
话题: output话题: level话题: int话题: position话题: num