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

相关推荐
weixin_4588726116 小时前
东华复试OJ二刷复盘2
算法
Charlie_lll16 小时前
力扣解题-637. 二叉树的层平均值
算法·leetcode
爱淋雨的男人16 小时前
自动驾驶感知相关算法
人工智能·算法·自动驾驶
wen__xvn17 小时前
模拟题刷题3
java·数据结构·算法
滴滴答滴答答17 小时前
机考刷题之 6 LeetCode 169 多数元素
算法·leetcode·职场和发展
Neteen17 小时前
【数据结构-思维导图】第二章:线性表
数据结构·c++·算法
礼拜天没时间.17 小时前
力扣热题100实战 | 第25期:K个一组翻转链表——从两两交换到K路翻转的进阶之路
java·算法·leetcode·链表·递归·链表反转·k个一组翻转链表
Swift社区18 小时前
LeetCode 400 第 N 位数字
算法·leetcode·职场和发展
再难也得平18 小时前
力扣239. 滑动窗口最大值(Java解法)
算法·leetcode·职场和发展
摩尔曼斯克的海18 小时前
力扣面试题--双指针类
python·算法·leetcode