Leetcode704二分查找、折半查找(Java实现)

好久没有更新算法题,今天来写一道二分查找的题目。题目要求如下,

那么这道题的解题思路如下,我们寻找的过程是首先去访问数组的中间位置mid,如果nums[mid]大于了targe那么说明,我们要找的数在mid的左半边,此时我们让right-1。

如果nums[mid]小于了targe那么说明我们要找的数在mid的右,因此此时我们应该让下标left+1。

那么如果nums[mid]等于了targe那么说明找到了将mid进行返回即可。大致的思路就是这样,详细的代码如下:

java 复制代码
class Solution {
    public int search(int[] nums, int target) {
        int left=0;
        int right=nums.length-1;
        while(left<=right){
            int mid= (left+right)/2;
            if(nums[mid]<target){
                left=mid+1;
            }else if(nums[mid]>target){
                right=mid-=1;
            }else{
                return mid;
            }
        }
        return -1;

    }
}

其实呢二分查找的思想不难,就是有时候实现的时候会出现各种错误,那么如果有任何问题,可以在文章下方留言,博主看到了会进行答疑解释。如果觉得博主写的可以麻烦给个3连谢谢(●ˇ∀ˇ●)!

相关推荐
2401_857918294 小时前
C++中的访问者模式实战
开发语言·c++·算法
elseif1234 小时前
CSP-S提高级大纲
开发语言·数据结构·c++·笔记·算法·大纲·考纲
熊猫_豆豆4 小时前
Python 基于Dlib和OpenCV实现人脸融合算法+代码
图像处理·python·算法·人脸融合
Book思议-4 小时前
【数据结构实战】双向链表:在指定位置插入数据
c语言·数据结构·算法·链表
lightqjx4 小时前
【算法】前缀和
c++·算法·leetcode·前缀和
窝子面4 小时前
LeetCode练题三:链表
算法·leetcode·链表
白昼流星!4 小时前
顺序表与单链表的数据存储差异: 为何顺序表元素用指针,链表节点数据不用?
数据结构·链表·顺序表
扶摇接北海1765 小时前
洛谷:P1104 生日
算法
旖-旎5 小时前
二分查找(寻找旋转排序数组中的最小值)(7)
c++·算法·二分查找·力扣
C羊驼5 小时前
C/C++数据结构与算法:穷举法
c语言·c++·笔记·学习·算法