递归实现二分法查找
代码:
public class Solution {
public int Search(int[] nums, int target) {
return dfs(nums, 0, nums.Length-1, target);
}
//递归实现二分查找
private int dfs(int[] nums, int left, int right, int target){
if(right < left) return -1;
int mid = left + (right - left) / 2;
if(nums[mid] == target) return mid;
if(nums[mid] < target){
return dfs(nums, mid+1, right, target);
}else{
return dfs(nums, left, mid-1, target);
}
}
}