文章目录
- 题目
- 脚本一
- 脚本一逻辑
题目:
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
你可以假设数组中无重复元素。
示例 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
脚本一:【用时:60ms】
class Solution: def searchInsert(self, nums: List[int], target: int) -> int: if target in nums: return(nums.index(target)) for i,j in enumerate(nums): if j > target: return(i) else: return(i+1)
脚本一逻辑:
- 第一:判断目标数字是否在列表中,若在则直接返回目标数字在列表中的索引值
- 第二:若目标数字不在列表中,则遍历列表,找到列表中第一个比目标数字大的元素值,并返回其索引值;若没有在列表中找到比目标数字大的元素,则返回列表元素个数加一
脚本二:【用时:50ms】【转载】
class Solution: def searchInsert(self, nums: List[int], target: int) -> int: if target in nums: return(nums.index(target)) nums.insert(0,target) nums.sort() return(nums.index(target))
脚本二逻辑:
- 此脚本处理也是相当巧妙
- 当目标数字不在列表中时,通过向列表添加目标数字,然后进行排序,最后通过列表的index方法获取目标数字在列表中的位置