由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - suduku solver这道题写代码有点难啊。
相关主题
求教一个题目,sudoku 下面代码哪里错了。。。来一题
PDF - LeetCode 200+ 题目总结走迷宫的 时间复杂度是多少?谢谢
leetcode online judge的Sudoku Solver有比backtracking好的解法吗?Google 电面面经
像leetcode的sudoku solver这种题,面试多大可能考到splunk面经,攒人品
soduku solver problem请问:解 Sudoku 可以用什么算法?
一道面试算法题微软面试题一道
boggle game是不是只有backtracking的解法?问一题
写了一个Queens的backtrack 大牛帮我看看0/1 Knapsack问题Linear Space的算法可以实现Backtrack吗?
相关话题的讨论汇总
话题: row话题: column话题: board话题: int话题: bfindone
进入JobHunting版参与讨论
1 (共1页)
g*******r
发帖数: 44
1
思路就是backtracking,做到bug-free有点难啊。 哪位有简洁明了的代码啊?好学习一
下。
l***i
发帖数: 1309
2
interviewstreet.com has a sudoku competition this Saturday, so you can test
your code for free, and maybe win a prize.
G***o
发帖数: 249
3
re

【在 g*******r 的大作中提到】
: 思路就是backtracking,做到bug-free有点难啊。 哪位有简洁明了的代码啊?好学习一
: 下。

a********y
发帖数: 1262
4
public void solveSudoku(char[][] board)
{
// Start typing your Java solution below
// DO NOT write main() function

}

public void tryNextBoard(char[][] board, int row, int column)
{
//System.out.println("row : "+row+"column: "+column);
if(row == board.length && column == 0)
{
//got it you can print it out or store to external array
return ;
}
else if(board[row][column] != '.')
{
int[] next = getNext(board.length,board[0].length,row,column
);
tryNextBoard(board, next[0],next[1]);
}
else
{
for(char i = '1'; i <= '9'; i++)
{
board[row][column] = i ;

if( isValidSudoku( board))
{
int[] next = getNext(board.length,board[0].length,
row,column);
tryNextBoard(board, next[0],next[1]);
}


board[row][column] = '.';
}
}

}
public int[] getNext(int rows, int columns, int row, int column)
{
int[] next = new int[2];
column ++;
if(column == columns)
{
column = 0;
row ++;
}
next[0] = row;
next[1] = column;
return next;
}

【在 g*******r 的大作中提到】
: 思路就是backtracking,做到bug-free有点难啊。 哪位有简洁明了的代码啊?好学习一
: 下。

Y**3
发帖数: 21
5
void BackTrack(vector > &board,int k,bool& bFindOne)
{
if(k>=81)
{
bFindOne=true;//find a solution
return;
}
int row=k/9;
int col=k%9;
if(isdigit(board[row][col]))//already set
BackTrack(board,k+1,bFindOne);
else
{
for(int i=1;i<=9;i++)
{
board[row][col]=i+'0';
if(isValid(board,row,col))
BackTrack(board,k+1,bFindOne);
if(bFindOne)return;
}
board[row][col]='.';//reset this position before trackback
}
}
void solveSudoku(vector > &board)
{
bool bFindOne=false;
BackTrack(board,0,bFindOne);
}
加上sudoku validation 的判断代码,确实太长了
l****1
发帖数: 19
6
DLX?
这个一般不会让面试写吧,要是问我我会直接从邮箱里找出大学时的代码演示加解释。。
Y**3
发帖数: 21
7
这个应该写出回溯的就可以了吧,当场手写个bugfree的DLX必定是搞竞赛的,PS,
interviewstreet上有大神sudoku竟然只用了两百个字符,膜拜。。。
C***U
发帖数: 2406
8
有代码么?
贴出来膜拜一下

【在 Y**3 的大作中提到】
: 这个应该写出回溯的就可以了吧,当场手写个bugfree的DLX必定是搞竞赛的,PS,
: interviewstreet上有大神sudoku竟然只用了两百个字符,膜拜。。。

1 (共1页)
进入JobHunting版参与讨论
相关主题
0/1 Knapsack问题Linear Space的算法可以实现Backtrack吗?soduku solver problem
转一些我blog上以前总结题目的日记(二)一道面试算法题
求一个单词的edit distance为k的所有单词boggle game是不是只有backtracking的解法?
怎么估计backtracking的复杂度?写了一个Queens的backtrack 大牛帮我看看
求教一个题目,sudoku 下面代码哪里错了。。。来一题
PDF - LeetCode 200+ 题目总结走迷宫的 时间复杂度是多少?谢谢
leetcode online judge的Sudoku Solver有比backtracking好的解法吗?Google 电面面经
像leetcode的sudoku solver这种题,面试多大可能考到splunk面经,攒人品
相关话题的讨论汇总
话题: row话题: column话题: board话题: int话题: bfindone