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

相关推荐
HaiLang_IT几秒前
基于图像处理与深度学习的油橄榄品种和成熟度检测算法研究
图像处理·深度学习·算法
YuTaoShao1 分钟前
【LeetCode 每日一题】3510. 移除最小数对使数组有序 II
linux·算法·leetcode
C+++Python10 分钟前
C++ vector
开发语言·c++·算法
2401_8414956415 分钟前
【LeetCode刷题】K 个一组翻转链表
数据结构·python·算法·leetcode·链表·翻转链表·迭代翻转
Shea的笔记本1 小时前
MindSpore实战笔记:Pix2Pix图像转换复现全记录
笔记·算法·机器学习·web3
清酒难咽1 小时前
算法案例之蛮力法
c++·经验分享·算法
想逃离铁厂的老铁1 小时前
Day50 >> 98、可达路径 + 广度优先搜索理论基础
算法·深度优先·图论
散峰而望1 小时前
【数据结构】假如数据排排坐:顺序表的秩序世界
java·c语言·开发语言·数据结构·c++·算法·github
YMH.1 小时前
1.23 指针
数据结构
海棠AI实验室1 小时前
第十五章 字典与哈希:高效索引与去重
算法·哈希算法