Một giải pháp khá nay để Valid Sudoku trong 81 bước

Có một người bạn nhắn tin hỏi tôi một vấn đề liên quan đến Sudoku, một lúc hì hục tôi đã đưa ra một kết luận khi  kiểm tra mỗi khối (block) từ 1->9,gọi khối đang kiểm tra là N, ta có một công thức như sau:

Khoảng hoạt động của khối N là từ Cột: N/3*3 đến N/3*3+3 và từ cột N%3*3 đến N%3+3. Mọi chuyện bắt đầu hay ở chỗ này, giả sử tôi đang ở vị trí [i,j] trong board. Thế tôi đang ở khối thứ bao nhiêu ? 

Tôi đang ở khối thứ i, vị trí của tôi trong khối sẽ là hàng i/3*3 + j/3 và cột i%3*3+j%3.
Tuyệt vời, giờ thì tôi có thể trong một lần duyệt xét cả 3 điều kiện Sudoku, hàng, cột, khối rồi.
Xưa thì tôi sẽ implement như thế này: 


Còn giờ, sẽ implement như thế này:


Ngắn gọn hơn rất nhiều. Cảm ơn bạn đã đọc đến đây. Hẹn gặp lại.

Nhận xét

Bài đăng phổ biến từ blog này

Hiểu về Norm Regularization

Faceswap & state-of-the-art (SOTA)