LeetCode704 二分查找

前言

题目: 704.二分查找
文档: 代码随想录------二分查找
编程语言: C++
解题状态: 解答错误,变量定义位置错误。

思路

有序数组的查找,最直接的思路应该就是二分查找。但是在查找的过程中要考虑到区间的边界问题,是左闭右开还是两边都闭。根据不同的情况来编写算法。注意,middle变量要放在while循环内来保证在每次循环时被有效更新。

代码

时间复杂度: O(log n)

cpp 复制代码
class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left = 0;
        int right = nums.size() - 1;

        while (left <= right) {
            int middle = left + (right - left) / 2;
            
            if (target < nums[middle]) {
                right = middle - 1;
            } else if (target > nums[middle]) {
                left = middle + 1;
            } else {
                return middle;
            }
        }

        return -1;
    }
};
相关推荐
炽烈小老头2 分钟前
【每天学习一点算法 2025/12/15】环形链表
学习·算法·链表
点云SLAM4 分钟前
算法复杂度分析之——空间复杂度分析和标准库算法与容器操作的复杂度实际案例分析(3)
算法·深度优先·空间复杂度·算法性能分析·标准库算法
Liangwei Lin6 分钟前
洛谷 P5788 【模板】单调栈
算法
京东零售技术7 分钟前
ACL 2025 | 一种用于电子商务query意图分类的半监督可扩展统一框架
算法
AA陈超33 分钟前
虚幻引擎5 GAS开发俯视角RPG游戏 P07-18.生成火球术
c++·游戏·ue5·游戏引擎·虚幻
wxin_VXbishe43 分钟前
springboot居家养老管理系统-计算机毕业设计源码55953
java·c++·spring boot·python·spring·django·php
ULTRA??1 小时前
归并排序算法实现,kotlin,c++,python
c++·python·kotlin
ytttr8731 小时前
matlab实现多标签K近邻(ML-KNN)算法
算法·机器学习·matlab
deng-c-f1 小时前
C/C++内置库函数(5):值/引用传递、移动构造、以及常用的构造技巧
开发语言·c++
qq_310658511 小时前
mediasoup源码走读(十)——producer
服务器·c++·音视频