当前位置:首页 > 编程笔记 > 正文
已解决

【算法专题突破】二分查找 - 704. 二分查找(16)

来自网友在路上 149849提问 提问时间:2023-09-24 02:52:15阅读次数: 49

最佳答案 问答题库498位专家为你答疑解惑

目录

1. 题目解析

2. 算法原理

3. 代码编写

写在最后:


1. 题目解析

题目链接:704. 二分查找 - 力扣(LeetCode)

题目非常简单,就是查找一个 target。 

2. 算法原理

根据最基本的二分查找算法:

在一个有序数组里面,左右边界分别是 left 和 right,mid 指向的位置的值是 x 

1. x < target,left  = mid + 1

2. x > target,right = mid - 1

3. x == target,返回结果即可·

3. 代码编写

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

4. 第一种二分模板

这个就是我们的第一个模板啦~

        while (left <= right) {

            int mid = left + (right - left) / 2;

            if ( ... ) left = mid + 1;

            else if ( ... ) right = mid - 1;

            else if ( ... ) return mid;

        }

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"【算法专题突破】二分查找 - 704. 二分查找(16)":http://eshow365.cn/6-12480-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!