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连谢谢(●ˇ∀ˇ●)!

相关推荐
YouQian77229 分钟前
2025春训第十九场
算法
CodeJourney.29 分钟前
基于MATLAB的生物量数据拟合模型研究
人工智能·爬虫·算法·matlab·信息可视化
Epiphany.55633 分钟前
素数筛(欧拉筛算法)
c++·算法·图论
爱吃涮毛肚的肥肥(暂时吃不了版)1 小时前
项目班——0510——JSON网络封装
c++·算法·json
liang_20261 小时前
【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)
数据结构·笔记·学习·算法·平面·总结
緈福的街口1 小时前
【leetcode】2900. 最长相邻不相等子序列 I
算法·leetcode·职场和发展
易只轻松熊1 小时前
C++(20): 文件输入输出库 —— <fstream>
开发语言·c++·算法
远瞻。1 小时前
【论文阅读】人脸修复(face restoration ) 不同先验代表算法整理
论文阅读·算法
进击的小白菜1 小时前
LeetCode 153. 寻找旋转排序数组中的最小值:二分查找法详解及高频疑问解析
数据结构·算法·leetcode
dog2502 小时前
BBR 的 buffer 动力学观感
人工智能·算法