leetcode二分法

二分法

力扣704题目:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果 target 存在返回下标,否则返回 -1。

你必须编写一个具有 O(log n) 时间复杂度的算法。

讲解:

有序整型数组,去找到一个目标值,就可以考虑使用二分法。这里要考虑左闭右闭区间和左闭右开区间。

这里只说一下左闭右闭区间 [1,1]

这里的left是可以等于right的,二分法的思路就是每次取中间值mid,然后去和target进行比较,如果当前中间值小于target,那么我们就把mid+1的值赋值给left;反之,那么我们就把mid-1的值赋值给right。

复制代码
/**`
` * @param {number[]} nums`
` * @param {number} target`
` * @return {number}`
` */`
`var` `search` `=` `function(nums, target)` `{`
    `let left =` `0;`
    `let right = nums.length-1`
    `while(nums[left]` `<= nums[right]){`
        `let mid = Math.ceil((left + right)` `/` `2);`
        `if(nums[mid]` `< target){`
`            left = mid +` `1`
        `}` `else` `if(nums[mid]` `> target)` `{`
`            right = mid -1`
        `}` `else` `{`
            `return mid`
        `}`
    `}`
     `return` `-1`
`};`
`
相关推荐
Gorway5 小时前
解析残差网络 (ResNet)
算法
拖拉斯旋风5 小时前
LeetCode 经典算法题解析:优先队列与广度优先搜索的巧妙应用
算法
Wect5 小时前
LeetCode 207. 课程表:两种解法(BFS+DFS)详细解析
前端·算法·typescript
灵感__idea19 小时前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
Wect1 天前
LeetCode 130. 被围绕的区域:两种解法详解(BFS/DFS)
前端·算法·typescript
NAGNIP2 天前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
颜酱2 天前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub2 天前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉