九宫图
2015-08-22 16:30
239 查看
import java.util.Scanner; public class CheckSudokuSolution { public static void main(String[] args) { int[][] grid=readASolution(); System.out.println(isValid(grid)?"Valid solution":"Invalid solution"); } public static int[][] readASolution() { Scanner input=new Scanner(System.in); System.out.println("Enter a Sudoku puzzle solution:"); int[][] grid=new int[9][9]; for(int i=0;i<9;i++) for(int j=0;j<9;j++) grid[i][j]=input.nextInt(); return grid; } public static boolean isValid(int[][] grid) { for(int i=0;i<9;i++) if(!is1To9(grid[i])) return false; for(int j=0;j<9;j++) { int[] column=new int[9]; for(int i=0;i<9;i++) column[i]=grid[i][j]; if(!is1To9(column)) return false; } for(int i=0;i<3;i++) for(int j=0;j<3;j++) { int k=0; int[] list=new int[9]; for(int row=i*3;row<i*3+3;row++) for(int column=j*3;column<j*3+3;column++) list[k++]=grid[row][column]; if(!is1To9(list)) return false; } return true; } public static boolean is1To9(int[] list) { int[] temp=new int[list.length]; System.arraycopy(list,0,temp,0,list.length); java.util.Arrays.sort(temp); for(int i=0;i<9;i++) if(temp[i]!=i+1) return false; return true; } }
相关文章推荐
- 《深入Java虚拟机第二版》读书笔记
- mysqldump工具的使用
- 灰度变换增强
- iOS-万能跳转界面方法 (runtime实用篇一) 字数733 阅读1080 评论28 喜欢51
- 控制台传入字符串用逗号隔开,判断是否是回文
- LeetCode2.1.5(Median of Two Sorted Arrays)
- 算法实现的复杂度计算
- 洛谷1023 税收与补贴问题 解题报告
- poj 2488 A Knight's Journey 【骑士周游 dfs + 记忆路径】
- 基本套接字编程
- HDU 1028 Ignatius and the Princess III
- leveldb学习:Env
- POJ 1584 A Round Peg in a Ground Hole(是否凸包 && 圆是否在凸包内)
- 线程入门(一)
- java并发编程---synchronized、Lock
- 第七集 最优间隔分类器问题
- 第七集 最优间隔分类器问题
- 字典序模版
- hdu 1561 The more, The Better 背包型树形DP 简单题
- 信号槽操作案例