美文网首页
Day 35 :寻找有序数组元素插入位置

Day 35 :寻找有序数组元素插入位置

作者: 快乐的老周 | 来源:发表于2020-06-26 23:00 被阅读0次

Day 35 :寻找有序数组元素插入位置

大家注意观察,上面的示例 1:

输入: [1,3,5,6], 待插入元素为 5 输出: 2

这意味着如果出现重复元素,则靠前插入。

如果插入 5,输出 3 ,靠后插入。

class Solution(object):
    def searchInsert(self, nums, target):
        left, right = 0, len(nums) -1
        if target < nums[0] :return 0
        if target >= nums[-1]: return len(nums)
        while left <=right:
            mid = (left + right )//2
            if target == nums[mid]:
                while nums[mid+1] == nums[mid]:
                    mid +=1
                return mid+1
            elif target > nums[mid]:
                left = mid +1
            else:
                right = mid -1
        return mid+1


def test_serarchInsert():
    s = Solution()
    assert s.searchInsert([1,3,5,6],5) == 3
    assert s.searchInsert([1,3,5,6],2) == 1
    assert s.searchInsert([1,3,5,5,5,6],5) == 5

s = Solution()
print(s.searchInsert([1,3,5,6,8,10,12,15,19,20,22,24,25,26,27,28],20))
print(s.searchInsert([1,3,5,6],2))
print(s.searchInsert([1,3,5,6],1))
print(s.searchInsert([1,3,5,6],6))
print(s.searchInsert([1,3,5,6],7))
print(s.searchInsert([1,3,5,6],7))

相关文章

  • Day 35 :寻找有序数组元素插入位置

    Day 35 :寻找有序数组元素插入位置 大家注意观察,上面的示例 1: 输入: [1,3,5,6], 待插入元素...

  • 排序算法:插入排序_直接插入排序

    关键词: 有序,数组元素右移 有序:待插入的元素将要插入的数组部分必然已经是有序的数组元素右移:插入位置之后的指定...

  • 【初级排序算法】插入排序

    插入排序将一个元素插入到已经有序的数组中的适当位置,使新的数组还是有序。插入排序中,当前索引左边的所有元素都是有序...

  • string字符串相关

    查找387 寻找第一个不重复的字符位置53 最大和子字符串35 寻找有序字符串插入位置27 删除指定元素2...

  • Java笔记---集合(List)

    List(有序的集合) List使用一个数组来持有元素,可以在任意位置插入和删除元素,也可以通过索引访问任意位置的...

  • 2.1.3 插入排序 Insertion Sort

    插入排序对于部分有序的数组十分高效,也很适合小规模数组。 部分有序: 数组中每个元素距离它的最终位置都不远 一个有...

  • Java排序算法 - 直接插入排序

    直接插入算法 顾名思义,就是在有序数组中适当的位置插入元素。 算法思路:把待排序的数组,第0位的元素看做是一个排好...

  • JS 数组各种操作:增、删、改

    原始数组 在数组最后面增加元素:push() 在数组最前面插入元素:unshift() 在数组指定位置插入元素:s...

  • 插入排序

    插入排序 时间复杂度为: O(n^2) 原理: 将数组分为两部分,将后部分元素逐一插入前部分有序元素的适当位置 思...

  • <<漫画算法>>--数据结构之数组

    大部分记录均来自小灰漫画算法 什么是数组有限个相同变量组成的有序结合 插入元素数组-插入元素.png数组扩容数组创...

网友评论

      本文标题:Day 35 :寻找有序数组元素插入位置

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