java版本
class Solution{
public int searchInsert(int[] nums, int target){
int left=0;
int right=nums.length-1;
while(left<=right):{
int mid=left+(right-left)/2;
if(target==nums[mid]){
return mid;
}
//对于存在的单独的处理了,单独的return
if(target<mid){
right=mid;
}
else{
left=mid+1;
}
}
return left;
}
}
//上述过程中不存在的情况的终止情况是找到这个目标值为止
//二分法可以查找,不管存不存在,都可以找到
//二分法定位,在就是mid,不在时找到结束,他的位置是left
//查找,定位,mid,left,找到为止
python版本
class Solution(object):
def searchInsert(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
i = 0
if target in nums :
return nums.index(target)
在的情况
else:
for i in range(len(nums)):
if target > nums[i] and i != len(nums)-1:
continue
#找到比target大的那个数为止,就插入进去,此时原来这个数的为止就被该数所占领-return i
elif target < nums[i]:
return i
else:
return len(nums)