0
点赞
收藏
分享

微信扫一扫

【二分查找】Leetcode 二分查找

其生 04-06 19:30 阅读 1

题目解析

二分查找在数组有序可以使用,也可以在数组无序的时候使用(只要数组中的一些规律适用于二分即可)
704. 二分查找
在这里插入图片描述


算法讲解

在这里插入图片描述
当left >= right的时候,我们循环结束,但是当left和right缩成一个点的时候,我们最后这个点的大小是没有与target进行比较的,所以我们需要进行最后一次计较

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left = 0, right = nums.size()-1;
        int mid = (right - left) / 2 + 1;
        while(left < right)
        {
            mid = left + (right - left) / 2;
            if(target > nums[mid])
            {
                left = mid + 1;
            }
            else if(target < nums[mid])
            {
                right = mid - 1;
            }
            else return mid;
        }
        if(nums[left] == target)return left;
        return -1;
    }
};

举报

相关推荐

0 条评论