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;
    }
};
相关推荐
dialect_8 小时前
KMP算法
开发语言·c++·算法
reikocao8 小时前
卡尔曼滤波的动态机制:P如何改变融合权重
算法
漂流瓶jz9 小时前
UVA-1612 猜名次 题解答案代码 算法竞赛入门经典第二版
数据结构·算法·题解·排序·aoapc·算法竞赛入门经典
吞下星星的少年·-·9 小时前
Div.2 CF 1130B题(构造,贪心)
算法·贪心·构造
文丑颜不良啊9 小时前
LeetCode1481~1500题目解析
java·leetcode
ShineWinsu10 小时前
对于Qt:QRadioButton常见属性以及QButtonGroup的解析
数据库·c++·qt·microsoft·gui·qradiobutton·qbuttongroup
文丑颜不良啊10 小时前
LeetCode1381~1400题目解析
java·leetcode
傲世仙尊10 小时前
多态-虚表才活到运行期符号表早已消失
c++
chenbingjie_c11 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
是main不是漫11 小时前
【双指针——移动零】数组划分类题目的入门基石
c++·算法