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 分钟前
缝合维度:时空3+1结构的拓扑起源
人工智能·算法·机器学习·agi
YXXY31311 分钟前
FloodFill算法
算法
OPEN-F20 分钟前
C++入门教程:数组、字符串与指针入门
数据结构·c++·算法
啦啦啦啦啦zzzz27 分钟前
共享内存的网络聊天室
linux·服务器·网络·c++·网络编程
林森lsjs33 分钟前
零基础吃透二叉树:定义、遍历与高频算法 —数据结构柒
java·开发语言·数据结构·算法·二叉树
船厂电气自动化ai大模型35 分钟前
AI大模型与数学·第56课 快速傅里叶变换FFT:DFT高效优化算法,图像、音频、扩散模型工程加速核心工具
数据结构·人工智能·深度学习·算法·机器学习
203号居民36 分钟前
【无标题】LeetCode hot 100 —54. 螺旋矩阵
算法
蜕变的土豆44 分钟前
SQLite文件加密完整教程:从零学会SQLCipher全库加密(C++实战)
c++·sqlite
ai产品老杨44 分钟前
越界检测算法接入 AI 视频分析平台的流程与误报优化指南
人工智能·算法·音视频
bluesky9612221 小时前
malloc 和 realloc C/C++
c语言·c++·算法