题目
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 1:
输入: [1,3,5,6], 5
输出: 2
示例 2:
输入: [1,3,5,6], 2
输出: 1
示例 3:
输入: [1,3,5,6], 7
输出: 4
示例 4:
输入: [1,3,5,6], 0
输出: 0
solution_1
思路:如果该数在列表中就返回位置,如果不在就把该数字存入列表中,利用列表的排序功能排好序,返回该数的位置。
结果:执行用时:60 ms
排名:战胜80.84%
代码如下
class Solution:
def searchInsert(self, nums: List[int], target: int) -> int:
if target in nums:
return nums.index(target)
else:
nums.append(target) # 把目标值加入列表
nums.sort() # 排序
return nums.index(target) # 获取位置
solution_2
思路:二分法查找