栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

搜索插入位置

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

搜索插入位置

给定一个排序数组(升序)和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

方法一

暴力解法,简单易懂,数值较少时采用。

思路:目标值<=排序数组时。返回当前索引值;目标值》排序数组时,返回数组长度。

int searchInsert(int* nums, int numsSize, int target){
    for(int i=0;i=target) return i;
    }
    return numsSize;
}

方法二

1.l=0,r=numSize,取mid为中间值


2.如果nums[mid]==target,返回mid值,循环终止

3.如果target >nums[mid],说明目标值在右侧,所以令l+1

4.如果target

5.重复第三步,第四步,直到找出与目标值相等的数组的值的索引值,返回l值,循环终止

int searchInsert(int* nums, int numsSize, int target){
    int l = 0;
    int r=numsSize-1; 
    while (l<=r)
    {
        int mid = l+(r-l) / 2; // 等价于(r+l)2,防止了l和r直接相加数值太大导致溢出
        if (target==nums[mid]) return mid;
        if (target>nums[mid]) l = mid + 1; 
        if (target 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/722195.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号