算法思想:
没什么好说的,就是一个数组的比较,四行代码搞定,主要看一下其他人的解法
代码:
class Solution(object):
def searchInsert(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
for i in range(len(nums)):
if nums[i]>=target:
return i
return len(nums)#这种情况是待插入数字大于列表里任何一个数字
别人的代码1,也比较无脑:
class Solution:
def searchInsert(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
if target in nums:
return nums.index(target)
else:
nums.append(target)
nums.sort()
return nums.index(target)
别人的代码2:二分法
class Solution(object):
def searchInsert(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
if len(nums) == 0:
return 0
i, j = 0, len(nums)-1
p = (i + j) / 2
while i <= j:
p = (i + j) / 2
if nums[p] == target:
return p
elif nums[p] > target:
j = p - 1
else:
i = p + 1
if nums[p] >= target:
return p
else:
return p+1
几个小知识点:
1.index()
函数可直接查询列表中元素的位置
2.python的sort函数实现排序