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;
    }
};
相关推荐
Sakinol#3 分钟前
Leetcode Hot 100 ——回溯part01
算法·leetcode
乌萨奇也要立志学C++6 分钟前
【Linux】线程池(二)C++ 手写线程池全流程:从核心设计到线程安全、死锁深度解析
linux·c++
feng_you_ying_li7 分钟前
list的介绍与底层实现
数据结构·c++·list
星轨初途9 分钟前
C++入门基础指南
开发语言·c++·经验分享·redis
罗湖老棍子10 分钟前
【例 3】校门外的树(信息学奥赛一本通- P1537)
数据结构·算法·树状数组
醉卧南楼17 分钟前
vector在不同场景下的最优声明与数据添加策略
c++·性能优化·vector
guguhaohao20 分钟前
平衡二叉树(AVL),咕咕咕!
数据结构·c++·算法
一叶落43823 分钟前
LeetCode 137. 只出现一次的数字 II —— 位运算解法
c语言·数据结构·算法·leetcode·哈希算法
阿豪只会阿巴27 分钟前
咱这后续安排
c++·人工智能·算法·leetcode·ros2
像素猎人28 分钟前
以数据结构之——树来体会深度优先搜索【dfs】和广度优先搜索【bfs】的妙用:学比特算法课的自用笔记
数据结构·c++·学习·dfs·bfs·深度优先搜索