美文网首页
35.leetcode题目讲解(Python): 搜索插入位置

35.leetcode题目讲解(Python): 搜索插入位置

作者: 夏山闻汐 | 来源:发表于2018-11-16 11:34 被阅读30次

    题目如下:


    image.png

    这道题使用双指针折半查找比较容易解,指的注意的是,如果出现插入元素与输入数组里的元素相同,需要插入到相同元素的位置,比如: [8,5,3],5 应该返回1,而不是2。
    参考代码如下:

    class Solution:
        def searchInsert(self, nums, target):
            """
            :type nums: List[int]
            :type target: int
            :rtype: int
            """
    
            le = len(nums)
            if le == 0:
                return 0
    
            if target > nums[-1]:
                return le
            elif target < nums[0]:
                return 0
            elif target = nums[-1]:
                return le - 1
            elif target = nums[0]:
                return 0
    
            lo = 0
            hi = le - 1
    
            while lo < hi:
                if (hi - lo) // 2 > 0:
                    mid = lo + (hi - lo) // 2
                    if nums[mid] < target:
                        lo = mid
                    elif nums[mid] > target:
                        hi = mid
                    elif nums[mid] == target:
                        return mid
                else:
                    return hi
    
            return hi
    

    源码地址:
    https://github.com/jediL/LeetCodeByPython

    其它题目:[leetcode题目答案讲解汇总(Python版 持续更新)]
    (https://www.jianshu.com/p/60b5241ca28e)

    ps:如果您有好的建议,欢迎交流 :-D,
    也欢迎访问我的个人博客 苔原带 (www.tundrazone.com)

    相关文章

      网友评论

          本文标题:35.leetcode题目讲解(Python): 搜索插入位置

          本文链接:https://www.haomeiwen.com/subject/cdapfqtx.html