我正在解決必須檢查所有 9 位數字是否都在 3x3 矩陣中的問題。
我知道我應該遍歷 3x3 矩陣并檢查每個數字是否為數字。這是我的代碼,但我沒有指導。
public boolean find(int num) {
int []a = {1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int i = 0; i < a.length; i )
if (a[i] == num)
return true;
return false;
}
public boolean allDigit() {
boolean isDigit = true;
for (int i = 0; i< _3x3.length; i ) {
for(int j = 0; j < _3x3[i].length; j ) {
if (!find(_3x3[i][j]))
isDigit = false;
}
}
}
uj5u.com熱心網友回復:
提供的代碼包含幾個錯別字:
num引數型別find必須是int- 方法
allDigit應該isDigit最終回傳 - 輸入矩陣
_3x3需要在某處定義和填充,或者allDigit作為引數傳遞給。
解決上述問題后,代碼應檢測陣列中的所有數字是否都_3x3屬于閉區間[1, 9],即,如果輸入矩陣1的所有單元格中都包含,則代碼回傳true。
但是,如果任務的目的是檢查輸入矩陣是否包含所有數字,即沒有重復條目,則find不應呼叫單獨的方法。相反,需要一個布爾陣列來檢查重復條目:
public boolean allDigitsPresent(int[][] arr) {
boolean[] digitSet = new boolean[10];
for (int i = 0; i < arr.length; i ) {
for (int j = 0; j < arr[i].length; j ) {
int d = arr[i][j]; // digit
if (d <= 0 || d >= digitSet.length) {
return false; // invalid value in the matrix
}
if (digitSet[d]) { // already set, duplicate is found
return false;
}
digitSet[d] = true;
}
}
return true; // no duplicate digit is found, all digits are in range [1..9]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/377976.html
