LeetCode算法题之35. Search Insert Position(easy)【Python3题解】

本文详细解析了在已排序数组中查找目标值插入位置的算法。通过实例展示如何在数组中找到目标值或其合适的位置,并提供了一种简单实现方法。代码示例使用Python编写,展示了遍历和排序的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述:
Given a sorted array and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order.

You may assume no duplicates in the array.

Example 1:

Input: [1,3,5,6], 5
Output: 2

Example 2:

Input: [1,3,5,6], 2
Output: 1

Example 3:

Input: [1,3,5,6], 7
Output: 4

Example 4:

Input: [1,3,5,6], 0
Output: 0

题目大意:

  • 给定一个排好顺序数组和target,让你找到target能够在哪个位置,插入到这个数组中去(是按照升序的顺序)
  • 返回那个位置的索引
  • 当然,如果数组中存在与target相等的数,直接返回那个数的索引

解题思路:

  • 本人想的较简单,遍历两次,第一次,就假设target在数组中,返回索引,如果不在
  • 那就直接将target,加到原数组中,再进行升序排列
  • 在循环一遍,找出target所在位置,返回

少废话,上代码:

class Solution:
    def searchInsert(self, nums, target):
        # 先遍历一遍,找出等于target的数,返回索引
        for i in range(len(nums)):
            if nums[i] == target:
                return i
        nums.append(target) # 直接将target,加进列表
        nums.sort() # 再升序排列,重新遍历一次,找到所在位置,返回索引
        for i in range(len(nums)):
            if nums[i] == target:
                return i

运行时间和内存占用:

  • Runtime: 52 ms, faster than 44.05% of Python3 online submissions for Search Insert Position.
  • Memory Usage: 14.5 MB, less than 5.97% of Python3 online submissions for Search Insert Position.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值