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`
`};`
`
相关推荐
郝学胜-神的一滴23 分钟前
[简化版 GAMES 101] 计算机图形学 04:二维变换上
c++·算法·unity·godot·图形渲染·unreal engine·cesium
ZC跨境爬虫23 分钟前
海南大学交友平台开发实战day7(实现核心匹配算法+解决JSON请求报错问题)
前端·python·算法·html·json
计算机安禾28 分钟前
【数据结构与算法】第41篇:图论(五):拓扑排序与关键路径
c语言·数据结构·c++·算法·图论·visual studio
Q741_14731 分钟前
每日一题 力扣 1320. 二指输入的的最小距离 动态规划 C++ 题解
c++·算法·leetcode·动态规划
wfbcg39 分钟前
每日算法练习:LeetCode 76. 最小覆盖子串 ✅
算法·leetcode·职场和发展
Wect43 分钟前
LeetCode 149. 直线上最多的点数:题解深度剖析
前端·算法·typescript
qianpeng8971 小时前
运动声源的到达结构仿真
算法
费曼学习法1 小时前
线段树:区间查询的"终极武器",一文看透高效范围统计
算法
wayz111 小时前
Day 2:线性回归原理与正则化
算法·机器学习·数据分析·回归·线性回归
QQ676580081 小时前
基于yolo26算法的水下目标检测图像数据集 海洋生物识别 海胆识别 海龟识别数据集 海洋生物监测与保护工作 潜水作业安全辅助系 水下环境感知第10408期
算法·目标检测·水下目标检测·海洋生物识别·海胆 海龟识别·海洋生物监测与保护工作·潜水作业安全辅助 水下环境感知