JAVA实现二分法(方法好不好不重要,面试的时候最快能想出来的方法才是最好的)
魔术索引I
http://www.nowcoder.com/questionTerminal/f2976b694c5a4a6497b1d7886894fcdd
JAVA重现二分法查找。
重点在于find方法中索引的添加以及更新的方法。
import java.util.*;
public class MagicIndex {
public boolean findMagicIndex(int[] A, int n) {
// write code here
return find(A,0);
}
public boolean find(int[] a,int index){
if(a.length == 0) return false;
int len = a.length / 2;
if(a[len] == len + index) return true;
boolean x = find(Arrays.copyOfRange(a,0,len),0);
boolean y = find(Arrays.copyOfRange(a,len+1,a.length),index + len + 1);
return x||y;
}
}
查看9道真题和解析