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

704 二分查找 day1

class Solution {

public:

    int search(vector<int>& nums, int target) {

        int left = 0;

        int right = nums.size() - 1; // 定义target在左闭右闭的区间里,[left, right]

        while (left <= right) { // 当left==right,区间[left, right]依然有效,所以用 <=

            int middle = left + ((right - left) / 2);// 防止溢出 等同于(left + right)/2

            if (nums[middle] > target) {

                right = middle - 1; // target 在左区间,所以[left, middle - 1]

            } else if (nums[middle] < target) {

                left = middle + 1; // target 在右区间,所以[middle + 1, right]

            } else { // nums[middle] == target

                return middle; // 数组中找到目标值,直接返回下标

            }

        }

        // 未找到目标值

        return -1;

    }

};

 

 

http://www.lryc.cn/news/248415.html

相关文章:

  • Python面试破解:return和yield的细腻差别
  • 云时空社会化商业 ERP 系统 service SQL 注入漏洞复现
  • Vue3-Pinia
  • 数据挖掘之时间序列分析
  • iOS NSDate的常用API
  • 谱方法学习笔记-下(超详细)
  • iOS--UIPickerView学习
  • Docker安装Elasticsearch以及ik分词器
  • [架构之路-254]:目标系统 - 设计方法 - 软件工程 - 软件设计 - 架构设计 - 全程概述
  • centos7上源码安装mysql--运维高级
  • Linux小程序之进度条
  • Grafana采用Nginx反向代理
  • Python接口自动化测试如何设计接口测试用例(详解)
  • Spring不再支持Java8了
  • Android 实现APP可切换多语言
  • Redis大key与热Key
  • SQL通配符字符
  • 力扣 144.二叉树的前序遍历
  • Ubuntu网络问题的解决
  • Git 本地服务器搭建 Windows
  • 【数值计算方法(黄明游)】常微分方程初值问题的数值积分法:欧拉方法(向后Euler)【理论到程序】
  • mac安装homebrew/brew遇到443
  • VSCODE 在新窗口中打开
  • Python与设计模式--解释器模式
  • 代码随想录算法训练营第36天| 435. 无重叠区间 763.划分字母区间 56. 合并区间
  • 1990-2021年上市公司排污费和环境保护税数据
  • MySQL主从复制架构
  • 制作心理咨询小程序的详细指南
  • Apache httpd-2.4安装并配置转发
  • 【Cisco Packet Tracer】DHCP/FTP/WEB/DNS实验