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;
    }
};
相关推荐
Shadow(⊙o⊙)10 分钟前
C++常见错误解析2.0
开发语言·数据结构·c++·后端·学习·算法
永远不会的CC11 分钟前
研0上岸找实习面试经历
python·算法·面试
帅小伙―苏12 分钟前
力扣483找到字符串中所有字母异位词
算法·leetcode
小O的算法实验室14 分钟前
2022年IEEE TETCI,基于矩阵的进化计算,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
欧米欧21 分钟前
STRING的底层实现
前端·c++·算法
南境十里·墨染春水30 分钟前
C++流类库 字符串流
开发语言·c++
smj2302_7968265232 分钟前
解决leetcode第3906题统计网格路径中好整数的数目
python·算法·leetcode
KobeSacre34 分钟前
leetcode 树
算法·leetcode·职场和发展
6Hzlia1 小时前
【Hot 100 刷题计划】 LeetCode 104. 二叉树的最大深度 | C++ 自底向上递归最优解
算法
Robot_Nav1 小时前
Kinodynamic Lazy ThetaStar:面向实时机器人导航的两阶段运动学路径规划算法
算法·机器人·lazy theta