题目要求
给定一个 n
个元素有序的(升序)整型数组 nums
和一个目标值 target
,写一个函数搜索 nums
中的 target
,如果目标值存在返回下标,否则返回 -1
。(元素无重复)
这道题目中的数组为有序数组,同时题目还强调数组中无重复元素,因为如果有重复元素,使用二分查找法返回的元素下标可能不是唯一的,这些都是使用二分法的前提条件。二分法查找元素的写法大体可分为两种,一种是左闭右闭区间,一种是左闭右开区间,本文给出第一种的写法。
c++版本:
Java版本:
Python3版本:
拓展:如果数组中含有重复元素,那该如何使用二分查找法呢?