Redian新闻
>
suduku solver这道题写代码有点难啊。
avatar
suduku solver这道题写代码有点难啊。# JobHunting - 待字闺中
g*r
1
思路就是backtracking,做到bug-free有点难啊。 哪位有简洁明了的代码啊?好学习一
下。
avatar
l*i
2
interviewstreet.com has a sudoku competition this Saturday, so you can test
your code for free, and maybe win a prize.
avatar
G*o
3
re

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

avatar
a*y
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有点难啊。 哪位有简洁明了的代码啊?好学习一
: 下。

avatar
Y*3
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 的判断代码,确实太长了
avatar
l*1
6
DLX?
这个一般不会让面试写吧,要是问我我会直接从邮箱里找出大学时的代码演示加解释。。
avatar
Y*3
7
这个应该写出回溯的就可以了吧,当场手写个bugfree的DLX必定是搞竞赛的,PS,
interviewstreet上有大神sudoku竟然只用了两百个字符,膜拜。。。
avatar
C*U
8
有代码么?
贴出来膜拜一下

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

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。