九宫格问题

本文记录了在学习Java二维数组时遇到的一道例题——九宫格问题的解决方案。程序目标是验证1到9的数字填充到九宫格中,使每一行、每一列及每个3x3小宫格内的数字都唯一。通过将数字放入数组排序并比较位置,判断解决方案的可行性。给出了源代码示例,并展示输出结果为有效解决方案。
摘要由CSDN通过智能技术生成

在学习《java语言程序设计·基础篇》二维数组的时候看到一道例题,过程简单,但是对我有些启发,特此记录。

九宫格是一个9×9的网格,它被分为更小的3×3的盒子。将从1到9的数字置入一些称为固定方格的格子里。该程序的目标是将从1到9的数字植入哪些称为自由方格的格子,以便达到能够使得每行每列以及每个3×3的盒子都包含1到9的数字。该程序只需要验证解决方案是否可行。


该问题的一个难点是:找到每列/行/方格中的九个数字,怎样知道这九个数字就是1~9。

解决办法:将这九个数字放入数组中,进行排序,查看数组序号是否等于该位置上的数字减去1。

源程序如下:

public class CheckSudokuSolution {
	public final static int NUMBEROFLINE = 9;
	public final static int NUMBEROFCOLUMN = 9;
	public static void main(String[] args) {
		//Read a Sudoku solution
		int[][] grid = readSolution();
		
		System.out.println(isValid(grid)? "Valid solution" : "Invalid solution");
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值