题目描述给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果 target 存在返回下标,否则返回 -1
你必须编写一个具有 O(log n) 时间复杂度的算法。
示例1:
123输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4
示例2:
123输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4
解题思路将该题简化,我们会发现以下几个关键词:有序数组、无重复元素、O(log n),这是一道很典型的二分查找,借由该题,我们将详细叙述二分的思想。
1. 二分查找的基本原理二分查找(Binary Search)是一种基于分治策略的查找算法,其核心思想是通过不断将有序数据集对半分割来快速定位目标元素。算法要求数据必须预先排序(通常为升序或降序),从而利用有序性快速缩小搜索范围。
数学基础:对于一个长度为n的有序数组,二分查找最多需要⌊l...
Markdown语法完全指南Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。本文将详细介绍 Markdown 的常用语法,帮助您快速掌握这个强大的写作工具。
1. 标题使用 # 符号来创建标题,# 的数量表示标题的级别:
123456# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题
2. 文本格式2.1 强调12345*斜体文本*_斜体文本_**粗体文本**__粗体文本__***粗斜体文本***
2.2 删除线1~~删除线文本~~
3. 列表3.1 无序列表1234- 项目1- 项目2 - 子项目2.1 - 子项目2.2
3.2 有序列表1231. 第一项2. 第二项3. 第三项
4. 链接和图片4.1 链接1[链接文字](URL)
4.2 图片1
5. 代码5.1 行内代码1`行内代码`
5.2 代码块123```语言名称代码块内容```
6. 引用12345> 引用文本> > 多行引用> > > 嵌套引...
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment