Java Recursion返回布尔值

时间:2014-05-11 02:25:46

标签: java recursion

给定一个整数数组f,我想看看数组中某些f[k]=k是否k。我有一些麻烦,因为我想回到阵列的左右两半,但我不知道如何去做。这就是我到目前为止所做的:

public class Find {

    int a = 0;

    public boolean find(int[] f) {
        if(f.length < 1) {
            return false;
        }
        System.out.println(f[0] + " " + a);
        if(f.length == 1 && f[0] == a) {
            return true;
        }
        if(f.length == 1 && f[0] != a) {
            return false;
        }

        int[] L = Arrays.copyOfRange(f, 0, f.length / 2);
        int[] R = Arrays.copyOfRange(f, f.length / 2, f.length);
        find(L);
        a++;
        //find(R);

        return find(R); //only finds in the right half...
    }


    public static void main(String[] args) {
        Find F = new Find();
        int[] test = {0, 13, 2, 3, 4};
        System.out.println(F.find(test));
    }
}

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作,当前搜索左侧但不返回结果:

return find(R) || find(L);