Java 检查数独中的重复行

Java 检查数独中的重复行,java,sudoku,Java,Sudoku,当我试图检查数独的行中是否有重复的元素时,结果没有返回任何内容。不知道代码是否正确。如果在一行中找到重复元素,则需要打印找到的重复元素。使用方法checkRow()帮助我找到解决方案 公共级数独{ 公共静态void main(字符串…参数)引发异常 { 扫描仪=新的扫描仪(System.in); int[]sudokuPuzzle={ {8, 1, 0, 0, 0, 0, 0, 3, 9}, {0, 0, 0, 9, 0, 1, 0, 0, 0},

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

公共级数独{
公共静态void main(字符串…参数)引发异常
{
扫描仪=新的扫描仪(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}
};  
打印数独游戏;
int count=countCellsToFill(sudokuPuzzle);
System.out.println(“必须填充的单元格数:“+计数”);
}
公共静态虚空打印数独(int[][]数独拼图)
{
for(int i=0;i
修改了checkRow方法以检查重复项-

public boolean checkRow(int[] sudokuPuzzle) {
    for (int row = 0; row < sudokuPuzzle.length; row++) {
        for (int i = 0; i < sudokuPuzzle.length; i++) {
            if (i == row) {
                continue;
            }
            if (sudokuPuzzle[i] == sudokuPuzzle[row]) {
                return true;
            }
        }
    }
    return false;
}
公共布尔校验行(int[]sudokuPuzzle){
for(int row=0;row
修改了checkRow方法以检查重复项-

public boolean checkRow(int[] sudokuPuzzle) {
    for (int row = 0; row < sudokuPuzzle.length; row++) {
        for (int i = 0; i < sudokuPuzzle.length; i++) {
            if (i == row) {
                continue;
            }
            if (sudokuPuzzle[i] == sudokuPuzzle[row]) {
                return true;
            }
        }
    }
    return false;
}
公共布尔校验行(int[]sudokuPuzzle){
for(int row=0;row
花点时间阅读您的代码:

 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;
 } 
公共布尔校验行(int[]sudokuPuzzle){
for(int row=0;row
在这里,您要做的是拾取第一个数字,在本例中为“8”,因为它位于您的位置“0”。然后,你检查“8”是否在你的位置“0”上,当然,这总是正确的

如果你想检查每行的数字,我建议你分析一下,也许,一个双人的。所以你可以写9行,每行9个数字,记住不要把你刚读到的数字和他自己比较

顺便说一句,如果你在玩数独游戏,你应该检查这个数字是否也出现在第一个方块中。Sodukus由9个正方形组成,您不能在行、列或正方形中重复数字


这是一个容易的问题,努力一点

花点时间阅读您的代码:

 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;
 } 
公共布尔校验行(int[]sudokuPuzzle){
for(int row=0;row
在这里,您要做的是拾取第一个数字,在本例中为“8”,因为它位于您的位置“0”。然后,你检查“8”是否在你的位置“0”上,当然,这总是正确的

如果你想检查每行的数字,我建议你分析一下,也许,一个双人的。所以你可以写9行,每行9个数字,记住不要把你刚读到的数字和他自己比较

顺便说一句,如果你在玩数独游戏,你应该检查这个数字是否也出现在第一个方块中。Sodukus由9个正方形组成,您不能在行、列或正方形中重复数字


这是一个容易的问题,努力一点

请正确格式化和缩进代码。未插入的代码几乎无法读取,并告诉我们哪段代码出错了。您尝试了什么,以及results.error在checkRow()方法中的位置。没有可用于此的输出。
int num=sudokuPuzzle[row];如果(num==sudokuPuzzle[row])
这将始终是truePS:您不应该选中
0
,因为这是您的默认值/空值,除非您希望将其作为副本返回,请正确格式化并缩进代码。未插入的代码几乎无法读取,并告诉我们哪段代码出错了。您尝试了什么,以及results.error在checkRow()方法中的位置。没有可用于此的输出。
int num=sudokuPuzzle[row];如果(num==sudokuPuzzle[row])
这将始终是truePS:您不应该选中
0
,因为这是您的默认值/空值