vlambda博客
学习文章列表

【每日编程-110期】二分查找

今日问题:

给定一个 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

 

提示:

  1. 你可以假设 nums 中的所有元素是不重复的。

  2. n 将在 [1, 10000]之间。

  3. nums 的每个元素都将在 [-9999, 9999]之间。


解决方法:

C++代码:


C代码:

【每日编程-110期】二分查找


Java代码:



明日题目预告:

山脉数组的峰顶索引

我们把符合下列属性的数组 A 称作山脉:

  • A.length     >= 3

  • 存在 0 < i < A.length - 1 使得A[0] < A[1] <     ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]

给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... >A[A.length - 1]  i 的值。

示例 1

输入:[0,1,0]

输出:1

示例 2

输入:[0,2,1,0]

输出:1

 

提示:

  1. 3 <=     A.length <= 10000

  2. 0 <= A[i] <= 10^6

  3. A 是如上定义的山脉