int searchInsert(int* nums, int numsSize, int target){
if(numsSize == 0)
return 0;
int start = 0,end = numsSize - 1,medium = 0;
//二分查找
while(start <= end)
{
//medium = (start + end)/2 可能会溢出
medium = start + (end - start)/2;
if( target == nums[medium])
return medium;
else if( target > nums[medium])
start = medium + 1;
else if( target < nums[medium])
end = medium - 1;
}
return target < nums[medium]? medium:medium+1;
}
问题1: 对于最后一行return返回值没有按条件进行区别
【leecode-35. 搜索插入位置】问题2: 一开始写的取中值式子 medium = (start + end)/2 可能会溢出,start + end 可能会超出整数范围。