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`
`};`
`
相关推荐
vibecoding日记4 小时前
双非如何快速入职字节等大厂大模型?真实案例分析:推理优化和投机解码
算法·求职·大模型工程师
yszaygr21386 小时前
Verilog参数化游程编码RLE模块
算法
望易6 小时前
刚设计的大模型架构-双域耦合认知框架
算法·架构
复杂网络10 小时前
多个 Claude Code 与多个 Codex 协同工作:设计与实现方案
算法
HjhIron1 天前
面试常客:字符串算法从入门到进阶
算法·面试
吴佳浩1 天前
DeepSeek DSpark:Confidence-Scheduled Speculative Decoding 技术解析
人工智能·算法·deepseek
触底反弹1 天前
🧠 搞懂 Token,才算真正入门大模型——从分词原理到 Embedding 语义实战
javascript·人工智能·算法
vivo互联网技术1 天前
ICLR 2026 | 基于后验采样的图像恢复方法LearnIR:人脸去阴影、去雾
人工智能·算法·aigc
浮生望1 天前
JS字符串与回文算法:从包装类到双指针的面试进阶之路
javascript·算法