首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

搜索插入位置

如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。...但这题还多了个额外的条件,即如果不存在数组中的时候需要返回按顺序插入的位置,那我们还能用二分法么?答案是可以的,我们只需要稍作修改即可。 考虑这个插入的位置 ,它成立的条件为: 其中 代表排序数组。...由于如果存在这个目标值,我们返回的索引也是 ,因此我们可以将两个条件合并得出最后的目标:「在一个有序数组中找第一个大于等于 的下标」。...下文给出的代码是笔者习惯的二分写法, 初值设置为数组长度可以省略边界条件的判断,因为存在一种情况是 大于数组中的所有数,此时需要插入到数组长度的位置。

10810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    链表任意位置插入节点

    之前我们的链表代码只能从头部插入节点,也就是通过修改head指向新节点,然后新节点指向head之前指向的节点达到增加头节点的目的。 我们将参照上图,演示如何在任意位置插入节点。...我们要插入任意节点首先是这个节点,存在可插入位置,比如我要插入2,那么就必须存在1这个位置,我这里不讨论这种意外情况。...下面我们就在2的位置插入一个节点; 在2的位置加入节点,,我们肯定需要到1的位置,也就是n-1的位置,n是我们要增加节点的位置。...,我们就可以链接n-1节点和新增节点(首尾链接),代码如下: temp->link = temp1->link; temp1->link = temp; 这里我们需要注意的是,插入任意节点只有存在...n-1节点时候,才可以插入,所以我们要考虑n是1的情况,也就是之前章节我们提到的要插入头节点的位置。

    18420
    领券