LeetCode 35 插入位置
一、题目分析
给定一个排序数组和一个目标值,如果能够找到这个值,就返回值的坐标,如果找不到,就返回值的插入位置的坐标值
二、代码实现(java)
class Solution {
public int searchInsert(int[] nums, int target) {
if(nums.length==0){
return 0;
}
if(target>nums[nums.length-1]){
return nums.length;
}
if(target<nums[0]){
return 0;
}
return search_target(nums,target,0,nums.length-1);
}
public int search_target(int[] nums, int target,int begin,int end){
//base case
if(begin >= end && target!=nums[begin]){//最后只剩下一个/两个数
if(target>nums[end]){
return end+1;
}
else
return end;
}
int middle=(begin+end)/2;
//如果找到target
if(target==nums[middle]){
return middle;
}
else if(target<nums[middle]){
end=middle-1;
return search_target(nums,target,begin,end);
}
else{
begin=middle+1;
return search_target(nums,target,begin,end);
}
}
}
再简单的题也不能小瞧了啊哈哈哈哈