首页 > 试题广场 >

Sudoku

[编程题]Sudoku
  • 热度指数:92430 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字,推算出所有剩余空格的数字,并且满足每一行、每一列、每一个3X3粗线宫内的数字均含1-9,并且不重复。
例如:
输入

输出


数据范围:输入一个 9*9 的矩阵

输入描述:

包含已知数字的9X9盘面数组[空缺位以数字0表示]



输出描述:

完整的9X9盘面数组

示例1

输入

0 9 2 4 8 1 7 6 3
4 1 3 7 6 2 9 8 5
8 6 7 3 5 9 4 1 2
6 2 4 1 9 5 3 7 8
7 5 9 8 4 3 1 2 6
1 3 8 6 2 7 5 9 4
2 7 1 5 3 8 6 4 9
3 8 6 9 1 4 2 5 7
0 4 5 2 7 6 8 3 1

输出

5 9 2 4 8 1 7 6 3
4 1 3 7 6 2 9 8 5
8 6 7 3 5 9 4 1 2
6 2 4 1 9 5 3 7 8
7 5 9 8 4 3 1 2 6
1 3 8 6 2 7 5 9 4
2 7 1 5 3 8 6 4 9
3 8 6 9 1 4 2 5 7
9 4 5 2 7 6 8 3 1
头像 草帽小子
发表于 2020-04-24 15:04:30
class Solution: def isValue(self, board, x, y): # 检查已经填入的坐标是否和列中有的元素相等 for i in range(9): if i != x and board[i][y] 展开全文
头像 陶陶2021
发表于 2021-10-06 16:24:11
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = 展开全文
头像 可导必连续^-^
发表于 2022-02-18 21:31:35
def check(sudoku,i,j): #判断这个数填入数独的i,j位置是否合理 for k in range(9): if(sudoku[i][k] == sudoku[i][j]) and (k != j): #若是这一列有重复的数据,认为这个数非法 展开全文
头像 TheLightOfStars
发表于 2020-03-01 03:40:30
思路 利用深度优先遍历解决,遍历数值,直到满足条件。这种独数的题填的数字的数量少会存在多组解。 #include<iostream> #include<string.h> using namespace std; int rows = 9, cols = 9; int a[9 展开全文
头像 AKUNAYA
发表于 2020-08-04 12:06:33
#include<iostream> #include<set> using namespace std; int flag=0;//是否到了最后一个点 void func(int *a,int i=0,int j=0) {//三个参数为 数组、当前位置坐标 if(i 展开全文
头像 mokfour
发表于 2022-01-22 22:03:41
#include <stdio.h> #define SIZE 9 int mp[SIZE][SIZE]={0};;//存储数独 int find_answer_ok; int check(int row, int col, int val) { //检验在当前位置填入val后,满 展开全文
头像 牛客390777145号
发表于 2020-11-12 21:19:01
使用DFS求解数独(Sudoku)问题 1.题目描述 问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字,推算出所有剩余空格的数字,并且满足每一行、每一列、每一个粗线宫内的数字均含1-9,并且不重复。输入:包含已知数字的9X9盘面数组[空缺位以数字0表示] 展开全文
头像 日不落拓海海
发表于 2022-02-21 17:22:49
递归回溯思路: 每一次往下延展,棋盘会多一个值 有几个0,递归就有多深。每递归一次,就填满一个0,直到棋盘填满,递归结束,返回True // 检验填入的k是否满足条件不重复 def isValid(row, col, k, board): // 判断在该行是否符合 for i in 展开全文
头像 呆喵挠琴
发表于 2021-11-30 23:49:56
题目的主要信息: 已知9X9盘面上的已知数字,推算出所有剩余空格的数字,并且满足每一行、每一列、每一个3X3粗线宫内的数字均含1-9,并且不重复。 方法一: 采用递归。九宫格里一共有81个数字,给这些数字编号为0、1、2……80,从第0个数开始递归,当最后一个数字递归完后结束递归。用dfs进行递归, 展开全文
头像 小水牛牛客
发表于 2022-02-08 14:32:00
import java.util.*; public class Main { public static void main(String[] agrs) { Scanner scan = new Scanner(System.in); int[][] a = ne 展开全文

问题信息

难度:
181条回答 28222浏览

热门推荐

通过挑战的用户

查看代码
Sudoku