Leetcode_35【搜索插入位置】

文章目录

  • 题目
  • 脚本一
  • 脚本一逻辑

题目:

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

你可以假设数组中无重复元素。

示例 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方法获取目标数字在列表中的位置
原文地址:https://www.cnblogs.com/mailong/p/12057658.html