赞
踩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
leetcode链接:https://leetcode.cn/problems/binary-search/
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
示例 1:
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4
示例 2:
输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1
二分查找也称为对半查找,是一种在有序数组中查找特定元素的搜索算法。其核心思想是将数组不断对半分割,并比较中间值与目标值的大小来缩小搜索范围。如果中间值等于目标值,则查找成功;如果中间值小于目标值,则目标值在数组的右半部分;如果中间值大于目标值,则目标值在数组的左半部分。
二分查找解题的前提:数组元素是有序且不重复的。因为一旦有重复元素,二分查找返回的元素下标可能不是唯一的。所以只有当题目满足上述条件后才可以考虑是否使用二分法。
二分法的区间定义一般分为两种:左闭右闭即[left, right],左闭右开[left, right)
左闭右闭区间需要注意一下两点:
代码如下(示例):
int search
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。