Loading Now

Sudoku Game

Sudoku là một trò chơi khá phổ biến và chắc ai cũng biết. Trò chơi như sau: có một hình vuông được chia thành 9×9 ô vuông con. Mỗi ô vuông con có giá trị trong khoảng từ 1 đến 9. Ban đầu hình vuông có một số ô vuông con cho trước (có điền sẵn số) và còn lại là trống. Hãy điền các số từ 1-9 vào các ô con lại sao cho: hàng ngang là các số khác nhau từ 1 đến 9, hàng dọc là các số khác nhau từ 1 đến 9, và mỗi khối 3×3 chính là các số khác nhau từ 1 đến 9.

Hãy hoàn thành game sudoku với ma trận 9×9 được điền sẵn một vài số cho trước, những ô trống sẽ được thể hiện bằng số 0. Nếu không thể, hãy trả về hiện trạng ban đầu của sudoku.

Ví dụ:

  • Với sudoku = [
    [5, 3, 0, 0, 7, 0, 0, 0, 0],
    [6, 0 ,0, 1, 9, 5, 0, 0, 0],
    [0, 9, 8, 0, 0, 0, 0, 6, 0],
    [8, 0, 0, 0, 6, 0, 0, 0, 3],
    [4, 0, 0, 8, 0, 3, 0, 0, 1],
    [7, 0, 0, 0, 2, 0, 0, 0, 6],
    [0, 6, 0, 0, 0, 0, 2, 8, 0],
    [0, 0, 0, 4, 1, 9, 0, 0, 5],
    [0, 0, 0, 0, 8, 0, 0, 7, 9]]
    thì solver_sudoku = [
    [5, 3, 4, 6, 7, 8, 9, 1, 2],
    [6, 7, 2, 1, 9, 5, 3, 4, 8],
    [1, 9, 8, 3, 4, 2, 5, 6, 7],
    [8, 5, 9, 7, 6, 1, 4, 2, 3],
    [4, 2, 6, 8, 5, 3, 7, 9, 1],
    [7, 1, 3, 9, 2, 4, 8, 5, 6],
    [9, 6, 1, 5, 3, 7, 2, 8, 4],
    [2, 8, 7, 4, 1, 9, 6, 3, 5],
    [3, 4, 5, 2, 8, 6, 1, 7, 9]]

Đầu vào/Đầu ra:

  • [Thời gian chạy] 1s với C++, 6s với Java và C#, 8s với Python, Go và JavaScript.
  • [Đầu vào] Matrix of Integer sudoku
    sudoku[i].Length = sudoku.Length = 9 
    1 <= sudoku[i][j] <= 9
  • [Đầu ra] Matrix of Integers

Post Comment

Contact