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

专题三二分算法

1.题目

题目分析:给一个目标数字,然后在数组里找到对应目标数字的下标,找不到就返回0

 2.算法原理

先用left和right在数组两端,然后求出中间值,跟目标数字对比,如果大了就把right--,因为数组是有序的,所以要把中间值往左移一点来减少值,如果小了就把left++来把值放大,直到值与目标数字一样,如果没有找到就不存在。

补充:二分查找本质是二段性,通过分段把没有用的区间给舍弃掉,只留下有用的区间,然后一直重复过程,直到把区间缩短到很小的范围,并找到目标值。

二分查找的时间复杂度 

二分查找模板 

3.代码实现

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left=0,right=nums.size()-1;
        while(left<=right)
        {
            int min=left+(right-left)/2;
            if(nums[min]<target) left++;
            else if(nums[min]>target) right--;
            else return min;
        }
        return -1;
    }
};

http://www.dtcms.com/a/62136.html

相关文章:

  • 工作记录 2017-01-04
  • 人工智能直通车系列15【机器学习基础】(决策树算法原理(ID3、C4.5、CART)决策树模型实现)
  • CENTOS7虚拟机硬盘不停机扩容
  • 【NLP 29、项目 Ⅰ:电商评论分类(好评 / 差评) 】
  • 基于MCAL的S32K3 GPIO外部中断使用
  • Redux 和 MobX 高频面试题
  • 类变量和类方法
  • 《高效迁移学习:Keras与EfficientNet花卉分类项目全解析》
  • 大脑宏观结构中的富集俱乐部:图论分析视角
  • 嵌入式硬件篇---手柄控制控制麦克纳姆轮子
  • Webpack Vite 前端高频面试题
  • 详解部分依赖
  • go函数详解
  • H-vmunet: High-order Vision Mamba UNet for Medical Image Segmentation模型详解及代码复现
  • Drools规则引擎在临床路径逻辑中的编程实例讨论汇总
  • java通配符?, T, E, K, V, N(简单易懂)
  • 树莓派4B使用Ubuntu20.04连接不上热点
  • 从零开始学习PX4源码10(启动过程)
  • AI Agent系列(三) -Agent实现
  • 云原生服务网格:微服务通信的智能中
  • vue3-computed计算属性和reactive响应式系统结合使用
  • 01、Hive从入门到放弃,第一章:简单入门与安装
  • 引入其他 YML 配置源 —— Spring Boot 中的 `import` 功能
  • Leetcode-146.LRU缓存
  • Oracle RAC环境下自动清理归档日志实战指南
  • vscode更新后: 适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新
  • 【从零开始学习计算机科学】操作系统(九)大容量存储器
  • Fast DDS Security--仿问控制
  • 《OpenCV》—— dlib(换脸操作)
  • Figma桌面客户端安装与协作设计入门指南(附官方下载链接)