给定一个整数数组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));
}
}
答案 0 :(得分:1)
您可以执行以下操作,当前搜索左侧但不返回结果:
return find(R) || find(L);