0
点赞
收藏
分享

微信扫一扫

Leetcode35. 搜索插入位置

开源分享 2022-03-14 阅读 58

Every day a leetcode

题目来源:35. 搜索插入位置

解法1:二分查找

题目要求必须使用时间复杂度为 O(log n) 的算法,且数组有序,毫无疑问用二分查找。

二分查找的思路不难理解,但是边界条件容易出错,比如:循环结束条件中 left 和 right 的关系,更新 left 和 right 位置时要不要加 1 减 1。

代码:

int searchInsert(int* nums, int numsSize, int target){
    int left=0;
    int right=numsSize-1;
    int mid;
    while(left<right)
    {
        mid=(left+right)/2;
        if(nums[mid]>target) right=mid-1;
        else if(nums[mid]<target) left=mid+1;
        else return mid;
    }
    return left;
}

结果:
在这里插入图片描述

举报

相关推荐

0 条评论