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;
    }
};
相关推荐
盐焗鹌鹑蛋1 小时前
【C++】C++11:列表初始化、声明、STL升级
c++
巧克力男孩dd1 小时前
Python超典型练习题(第一次作业)
开发语言·python·算法
爱刷碗的苏泓舒1 小时前
平方根信息滤波:矩阵推导及 GNSS 参数估计应用
线性代数·算法·矩阵·gnss·参数估计·测量平差·平方根信息滤波
想做小南娘,发现自己是女生喵2 小时前
第 2 章 顺序表和 vector
java·数据结构·算法
ComputerInBook3 小时前
c 和 c++ 中的宏块(macro)
c语言·c++··宏块·宏指令
艾醒3 小时前
2026年第29周(7.13-7.19)AI全复盘:技术突破、行业趣闻翻车、算力服务器商业动态
人工智能·算法
AA陈超3 小时前
004 T02 - 俯视角摄像机系统 设计文档
网络·c++·ue5·虚幻引擎
雪碧聊技术3 小时前
动态规划算法—01背包问题
算法·动态规划
bu_shuo3 小时前
c与cpp中的argc和argv
c语言·c++·算法
普贤莲花3 小时前
【2026年第29周---写于20260718】---整理,断舍离
程序人生·算法·生活