正しい出力が得られない方法を理解できないようです
int [] f = {1,2,3,4,5,5,4,3,2,1};
int [] b = {0,3,3};
System.out.println(Arrays.toString(hide(f,b)));
// declare int array that will be returned by following method
int [] hiddenAt = {};
public static int [] hide(int [] front, int [] back) {
if (back.length > front.length) {
System.exit(0);
}
for(int x = 0; x < (front.length - 1); x++){
for(int y = 0; y < (back.length - 1); y++){
int temp = front[y];
if (front[y] - back[y] <= front[y] && front[y] - back[y] >= 0 ) {
hiddenAt.add(temp);
}
}
}
return hiddenAt;
}
最初の配列の最大値を超えることなく、2 番目の配列が最初の配列に収まる場所を見つけるために、最初の配列と 2 番目の配列を比較しようとしています。
1 回目のループ: 0 は 1 と比較し、2 は 3 と比較し、次に 3 と 3 を比較します (これは機能しません) 2 回目は位置をシフトします: 0 と 2、2 と 3、3 と 4 (機能) 3 で 0、4 で 3、5 で 3 (再び動作)
次に、配列内のすべての位置に対して、それらの値を含む配列が返されます。この例では、front[1]、front[2]、front[3] であり、返された配列は {1, 2 のようになります。 、3 ... }