[英]JAVA Pass individual dimensions of a 2D array as 1D arrays
我正在嘗試檢查數組的每一行,然后每一列是否包含重復值(拉丁矩形檢查)。 我制作了一種檢查1D數組的方法,但無法弄清楚如何將2D數組的一部分傳遞到其中。 這是我的一維數組檢查方法:
public static boolean hasDuplicates(int [] inArray)
{
for(int i = 0; i < inArray.length; i++)
for(int j = i + 1; j < inArray.length; j++)
if(inArray[i] == inArray[j])
return true;
return false;
}
這是我調用先前方法的方法的混亂之處:
public static boolean arrayChecker(int[][] inArray)
{
int [] splitRows = new int[inArray.length];
int [] splitCols = new int[inArray[0].length];
for(int row = 0; row < inArray.length; row++)
{
for(int col = 0; col < inArray[0].length; col++)
splitRows[col] = inArray[row][col];
if(hasDuplicates(splitRows))
return true;
}
for(int col = 0; col < inArray[0].length; col++)
{
for(int row = 0; row < inArray.length; row++)
splitCols[row] = inArray[row][col];
if(hasDuplicates(splitCols))
return true;
}
return false;
}
我現在知道它的問題是我的splitRows和splitCols數組在每個循環后都不會重置值,因此當它再次運行時,它將檢查新值與舊值。 我似乎找不到解決方法。 我嘗試在循環之前將arrays設置為null,但這會清除大小並將其擰緊更多。
任何幫助表示贊賞。
編輯:這是我主要方法中的調用:
if (arrayChecker(originalArray))
System.out.println("Invalid");
else
System.out.println("Valid");
hasDuplicates(inArray[row])
將傳遞1d數組給hasDuplicates
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.