当前位置: 首页 > news >正文

力扣704:二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1


示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

示例 2:

输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1

思想:定义一个low指向数组的第一个元素,定义一个high指向数组的最后的一个元素,定义一个mid指向数组的中间那个元素。将中间元素与目标元素进行比较,如果相等,则返回其下标mid。如果中间元素小于目标元素,则目标元素在数组右边,将low移动到low+1位置。如果目标元素小于之间元素,则目标元素在数组左边,将high移动到high+1位置。然后对相应的左表或者右表重复上述操作,查找成功返回mid,差找失败,返回-1。

代码:

int search(int* nums, int numsSize, int target) {int low=0;int high=numsSize-1,mid;while(low<=high){mid=(low+high)/2;if(nums[mid]==target){return mid;}else if(nums[mid]<target){low=mid+1;}else{high=mid-1;}}return -1;
}

时间复杂度O(longn),空间复杂度O(1)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Ruby 多线程
  • Django+Vue家居全屋定制系统的设计与实现
  • 某云彩SRM2.0任意文件下载漏洞
  • OpenGL知识点记录
  • 使用 GZCTF 结合 GitHub 仓库搭建独立容器与动态 Flag 的 CTF 靶场+基于 Docker 的 Web 出题与部署+容器权限控制
  • RabbitMQ 入门教程
  • 把时间当作朋友
  • Hive时间窗口函数保姆级教程(最全解析、应用和优化)(持续更新)
  • C语言学习笔记 Day16(C10文件管理--下)
  • 《机器学习》文本数据分析之关键词提取、TF-IDF、项目实现 <上>
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——10.继承
  • CCF-CSP 2024 --重塑矩阵1,2c语言题解
  • 网络编程9.3
  • 基础学习之——Kubernetes
  • vscode好用的快捷键整理~
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • Javascript设计模式学习之Observer(观察者)模式
  • JavaScript中的对象个人分享
  • leetcode388. Longest Absolute File Path
  • Object.assign方法不能实现深复制
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • spring + angular 实现导出excel
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 给新手的新浪微博 SDK 集成教程【一】
  • 利用jquery编写加法运算验证码
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • Mac 上flink的安装与启动
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • # dbt source dbt source freshness命令详解
  • #ifdef 的技巧用法
  • (1)SpringCloud 整合Python
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (面试必看!)锁策略
  • (四)c52学习之旅-流水LED灯
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • *上位机的定义
  • .a文件和.so文件
  • .NET Framework .NET Core与 .NET 的区别
  • .Net 高效开发之不可错过的实用工具
  • .Net--CLS,CTS,CLI,BCL,FCL
  • .NET轻量级ORM组件Dapper葵花宝典
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • @ComponentScan比较
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [20171101]rman to destination.txt
  • [Android] Upload package to device fails #2720