题目在这:https://leetcode-cn.com/problems/search-insert-position/
题目分析:
题目本身不难理解,给的是一个从小到大的有序数组,给一个数N,找N应该插入的位置。
法一:
暴力匹配法:
我们可以直接遍历数组找到比要插入的数字N还大的数。插入到他前面。
比如 [1,3,4,5,6,9] 要插入的数是8。遍历到9时,9>8,所以插入到9的前面。
如果数组遍历完了都没有找到比所插入数N还大的数,则将要插入的数N直接放到数组的最后一个。
题目要求返回要插入的数组下标~~~
代码:
= [1,3,5,6]
target =7
temp = 0
for i in range(len(nums)):
if nums[i] == target:
print(i)
return i
elif nums[i] > target:
print(i)
return i
elif i ==len(nums) -1: # 遍历完了都没找到该插入的位置
print(len(nums))
return len(nums)
法二:
使用二分法进行查找,会比上面的方法快的多。
不过我二分法只能自己写出来不是很熟,我再去融会贯通一下,回来再更。