gpt4 book ai didi

java - 检查数独中的行是否有重复项

转载 作者:行者123 更新时间:2023-12-02 02:46:56 26 4
gpt4 key购买 nike

当我尝试检查数独的行中是否有重复元素时,没有返回任何结果。不知道代码对不对。如果在一行中发现重复元素,则需要打印重复发现的内容。帮助我使用 checkRow() 方法找到解决方案。

public class Sudoku {
public static void main(String... args) throws Exception
{
Scanner scanner = new Scanner(System.in);
int[][] sudokuPuzzle = {
{8, 1, 0, 0, 0, 0, 0, 3, 9},
{0, 0, 0, 9, 0, 1, 0, 0, 0},
{3, 0, 5, 0, 0, 0, 4, 0, 1},
{0, 0, 9, 8, 0, 2, 7, 0, 0},
{0, 0, 0, 5, 0, 6, 0, 0, 0},
{0, 0, 4, 3, 0, 7, 1, 0, 0},
{1, 0, 8, 0, 0, 0, 9, 0, 2},
{0, 0, 0, 6, 0, 4, 0, 0, 0},
{2, 4, 0, 0, 0, 0, 0, 6, 5}
};
printSudoku(sudokuPuzzle);
int count = countCellsToFill(sudokuPuzzle);
System.out.println("Number of cells have to filled: " + count);
}
public static void printSudoku(int[][] sudokuPuzzle)
{
for (int i = 0; i < sudokuPuzzle.length; i++)
{
if (i == 3 || i == 6)
System.out.println("------------------------");
for (int j = 0; j < sudokuPuzzle[i].length; j++)
{
System.out.format("%-2s", sudokuPuzzle[i][j]);
if (j == 2 || j == 5 )
System.out.print(" | ");
}
System.out.println();
}
}

public static int countCellsToFill(int[][] sudokuPuzzle){
int count=0;
for(int[] sudokuPuzzle1 : sudokuPuzzle){
for(int a: sudokuPuzzle1){
if(a == 0){
count++;
}
}
}
return count;
}
public boolean checkRow(int[] sudokuPuzzle){
for (int row = 0; row < sudokuPuzzle.length; row++)
{
int num = sudokuPuzzle[row];
if (num == sudokuPuzzle[row])
{
return true;
}
}
return false;
}
}

最佳答案

花点时间阅读您的代码:

 public boolean checkRow(int[] sudokuPuzzle){
for (int row = 0; row < sudokuPuzzle.length; row++)
{
int num = sudokuPuzzle[row];
if (num == sudokuPuzzle[row])
{
return true;
}
}
return false;
}

您在这里所做的是选取第一个数字,在本例中为“8”,因为它位于您的位置“0”。然后,您检查“8”是否位于您的位置“0”上,这当然总是正确的。

如果你想检查每行的数字,我建议你用双倍来分析它。所以你可以做你的 9 行,每行 9 个数字,并且要记住不要将你刚刚读到的数字与他自己进行比较。

顺便说一句,如果您正在做数独,您应该检查该数字是否也出现在第一个方格中。 Sodukus 由 9 个方格组成,行、列、方格中的数字不能重复。

这是一个简单的问题,有点困难!

关于java - 检查数独中的行是否有重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44431347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com