0
int [] f = {1,2,3,4,5,5,4,3,2,1};
int [] b = {6,1};
System.out.println(Arrays.toString(hide(f,b)));

public static int [] hide(int [] front, int [] back) {
    int temp;
    int extraTemp;
    int nextTemp = 0;

    int [] hiddenAt = new int[front.length];
    //int [] shownAt = new int[front.length];

    for(int x = 0; x < front.length; x++){
        for(int y = 0; y <= back.length; y++){
            temp = x;
            if ((back.length > front.length) || (front[x] < 0 || back[y] < 0) || (front.length < 1 || back.length < 1)) {
                System.exit(0);
            }

            if (y < back.length - 1){
            nextTemp = Math.abs(back[y + 1] - front[x + 1]);
            }
            else {
                nextTemp = 0;
            }

            if (front[x] > back[y]) {
                System.out.println(temp);
            }
            else if (front[x] < back[y] && y >= back.length - 1 ) {
                extraTemp = back[y] - front[x];

                if (extraTemp > nextTemp){
                    extraTemp = nextTemp;
                }
                System.out.println(extraTemp);
            }
            else if (front[x] < back[y]) {
                extraTemp = back[y] - front[x];

                if (extraTemp > nextTemp){
                    extraTemp = nextTemp;
                }
                System.out.println(extraTemp);
            }
        }
    }
    return hiddenAt;
}

println、生成されている値を確認するために代入されています。それらはhiddenAt[z] = temp;、値が正しいことがわかったときに表示されます。

then front[0]withなどと比較する必要があります。その後、1つシフトします: with then withの終わりまで。どこが一番差が少ないか知りたいです。(この場合は[]内の数字が4と5の場合です。)back[0]front[1]back[1]front[1]back[1]front[2]back[2]front[]

2 つのエラーが発生します。1 つは行 39 if ((back.length > front.length) || (front[x] < 0 || back[y] < 0) || (front.length < 1 || back.長さ < 1)) { System.exit(0); }

が間違っていて、その 9 行目も間違っています。public class 2 { public static void main(String[] args) {

    int [] f = {1,2,3,4,5,5,4,3,2,1};
    int [] b = {6,1};
    System.out.println(Arrays.toString(hide(f,b)));
}

正確なエラーは次のとおりです。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at hw2.hide(hw2.java:39)
at hw2.main(hw2.java:9)
4

2 に答える 2