leetcode 37 数独
private boolean[][] r = new boolean[9][9];
private boolean[][] c = new boolean[9][9];
private boolean[][][] x = new boolean[3][3][9];
private boolean valid = false;
private List<int[]> list = new ArrayList<int[]>();
public void solveSudoku(char[][] board) {
for(int i = 0; i < 9; i++) {
for(int j = 0; j < 9; j++) {
if(board[i][j] == '.') {
list.add(new int[] {i,j});
}
else {
int num = Integer.parseInt(String.valueOf(board[i][j])) - 1;
r[i][num] = c[j][num] = x[i/3][j/3][num] = true;
}
}
}
dfs(board, 0);
}
private void dfs(char[][] board, int pos) {
if(pos == list.size()) {
valid = true;
return;
}
int[] thisPos = list.get(pos);
int m = thisPos[0], n = thisPos[1];
for(int i = 0; i < 9 && !valid; i++) {
if(!r[m][i] && !c[n][i] && !x[m/3][n/3][i]) {
r[m][i] = c[n][i] = x[m/3][n/3][i] = true;
board[m][n] = (char) (i + '0' + 1);
dfs(board, pos+1);
r[m][i] = c[n][i] = x[m/3][n/3][i] = false;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)