前提:使用二分查找,需要数组有序,不然会影响二分查找结果,可以先使用Arrarys.sort()方法对数组排序,再使用二分查找法:
public int search(int[] nums, int target) {
Arrays.sort(nums);
int low = 0 , high = nums.length-1;
while (low <= high) {
int mid = (high - low)/2 + low;
int num = nums[mid]; //找到给定排序后数组的中间值
if (num == target) return mid;
if (num >target) high=mid-1; //如果给定查找值比中间值小,则在数组左边查找
else low = mid+1;
}
return -1;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)