int[] のタブが順列であるかどうか、つまり 3 つの特徴を意味する天気を確認したい:
まず重複禁止
次に、数値の範囲は 1 から N(サイズ) の間である必要があります
最後に、1 から N までのすべての数字が順列に表示されます
たとえば、2 2 3 は順列ではありません。なぜなら、2 は重複しているためです。2 3 4 は、4>N=3 であるため順列ではありません。
これまでのところ、重複と範囲の問題を修正しましたが、1 から N までのすべての数値を強制的に順列に表示する必要があります。これまでのコードは次のとおりです。
public static boolean isperm(byte[] tab){
for (int i=0;i<tab.length;i++){
if (tab[i]>=1 && tab[i]<=tab.length ) {
for (int j=0;j<tab.length;j++) {
for (int k=j+1;k<tab.length;k++) {
if (tab[k]==tab[j]){ // or use .equals()
return false;
}
}
}
return true;
} else {
return false;
}
}
return false;
}
だから私の質問は、1からNまでのすべての数字がint []に存在することを確認するテストです