搜索插入位置(C)

  • 1. 题目描述
  • 2. 题目分析
  • 3. C语言实现
    • 3.1 遍历法
    • 3.2 二分法

1. 题目描述

难度:简单

2. 题目分析

这道题目比较简单,比较容易想到的就是遍历法,其实更快的方法是二分法:

  • 遍历法
    依次遍历数组中的元素,判断是否存在目标值,如果存在返回索引,否则返回大于目标值的第一个元素的索引。时间复杂度为O(n)
  • 二分法
    利用二分法来搜索数组会缩短访问时间。时间复杂度为O(logn)

3. C语言实现

3.1 遍历法

代码如下:

int searchInsert(int* nums, int numsSize, int target){int i;if(numsSize == 0) return 0;for(i = 0; i < numsSize; i++){if(nums[i] >= target)return i;}return i;
}

运行结果为:

3.2 二分法

代码如下:

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

运行结果为:

LeetCode--35. 搜索插入位置(遍历,二分法)相关推荐

  1. leetcode 35. 搜索插入位置(二分法搜索失败的情况)

    35. 搜索插入位置 思路:二分查找 模板: 如果查找成功,返回target在nums中的下标 //二分查找模板 //nums[0..n-1]为有序数组,target为目标 int left=0; i ...

  2. LeetCode 35. 搜索插入位置(二分查找)

    文章目录 1. 题目信息 2. 解题 2.1 暴力遍历 2.2 二分查找 1. 题目信息 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插 ...

  3. leetcode 35. 搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...

  4. Leetcode 35.搜索插入位置 二分

    题目链接 思路: 是常规的二分法, 需要注意的是,当数字不存在的时候,需要返回插入该数进序列并保持有序的位置,即返回的是最后一个小于查找数target的位置.二分查找最后结束的位置,即退出循环时的左边 ...

  5. LeetCode 35.搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 1: 输入: [1,3,5,6], 5 输 ...

  6. leetcode 35. 搜索插入位置 思考分析

    目录 题目 暴力 二分迭代 二分递归 题目 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引.如果目标值不存在于数组中,返回它将会被按顺序插入的位置. 你可以假设数组中无重复元素. 示例 ...

  7. LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置

    前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...

  8. 【LeetCode】35. 搜索插入位置---JavaScript解法

    [LeetCode]35. 搜索插入位置-JavaScript解法 原题链接:https://leetcode-cn.com/problems/search-insert-position/ /*** ...

  9. LeetCode Algorithm 35. 搜索插入位置

    35. 搜索插入位置 Ideas 题目中给的提示已经很清楚了,要求时间复杂度是O(log n),这不是指着鼻子跟我说:给老子用二分查找嘛! Code Python def searchInsert(s ...

  10. 力扣35. 搜索插入位置python实现

    35. 搜索插入位置 一.问题描述 二.算法思想   题目中的数组是排好序的,从头开始遍历,当发现列表中元素的值与target相等时返回该元素在列表中的位置i,否则继续查找,当发现列表中的元素比tar ...

最新文章

  1. 使用Apache反向代理实现全能主机的搭建
  2. linux系统自签发免费ssl证书,为nginx生成自签名ssl证书
  3. SQL Server之字符串函数
  4. gitlab将分支代码合并到master上
  5. 多功能拼团商城源码-带优惠券功能+自适应移动端+对接免签约支付
  6. dfs.datanode.max.xcievers参数导致hbase集群报错
  7. maven 下载源码
  8. Qt4_Ticker定时器事件
  9. VS2015 编译libevent库
  10. python整型图_基于PIL的图像整形与裁剪矢量化
  11. jQuery post使用变量作参数名
  12. 核电厂的“神经中枢”——核电厂数字化仪控系统
  13. f1c100s 源码_全志 F1C100S/200S Ucos Kile MDK emwin 408M-ARM9内置DDR 源码
  14. 诺瓦面试(一面和二面)总结
  15. GitChat·Python | 零基础小白如何入门 Python 编程
  16. 前端性能优化(图片优化)
  17. 读书笔记---Naive Bayes
  18. 解决邮件客户端QQ Mail及Thunderbird无法登入Outlook的问题
  19. 攻防世界MISC进阶之misc1
  20. 全球及中国安防电源行业竞争状况及供需前景预测报告(新版)2022-2027

热门文章

  1. 信安精品课:2020年软考信息安全工程师备考公开课
  2. 论无线网络中的网络与信息安全技术
  3. python 字符串匹配like_python中关于正则表达式一
  4. 微信小程序中 tabbar的icon图标格式大小
  5. 使用Docker安装mysql,挂载外部配置和数据
  6. EasyUI--权限管理(二)显示左侧菜单
  7. 动手动脑java异常处理
  8. 高级查询(1.连接查询(对列的扩展)2.联合查询(对行的扩展)3.子查询)
  9. 车脸检测 Adaboost 检测过程
  10. 如何加快数据库查询速度