方法一:非常简洁,一句话就可以搞定。
if nums :
return len([arg for arg in nums if arg<target])
方法二:暴力法(最笨)
class Solution(object):
def searchInsert(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
if nums:
if target >nums[-1]:
return len(nums)
if target<nums[0]:
return 0
for i in nums:
if i==target:
return nums.index(i)
for n in range(len(nums)-1):
if nums[n]<target and nums[n+1]>target:
return n+1
第三种方法:二分法
class Solution(object):
def searchInsert(self, nums, target):
“”"
:type nums: List[int]
:type target: int
:rtype: int
“”"
size =len(nums)
if size==0:
return None
left =0
right=len(nums)
while left<right:
mid = left+(right-left)//2
if nums[mid]<target:
left=mid+1
if nums[mid]>=target:
right=mid
return left