码迷,mamicode.com
首页 > 其他好文 > 详细

158.Binary Search

时间:2018-09-11 21:09:04      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:otherwise   output   排序   pre   索引   while   搜索   its   元素   

题目:

Given a sorted (in ascending order) integer array nums of n elements and a target value, write a function to search target in nums. If target exists, then return its index, otherwise return -1.

给定n个元素的排序(按升序排列)整数数组nums和目标值,编写一个函数来搜索nums中的目标。 如果target存在,则返回其索引,否则返回-1。


Example 1:

Input: nums = [-1,0,3,5,9,12], target = 9
Output: 4
Explanation: 9 exists in nums and its index is 4
说明:9存在于nums中,其索引为4

Example 2:

Input: nums = [-1,0,3,5,9,12], target = 2
Output: -1
Explanation: 2 does not exist in nums so return -1
说明:2在nums中不存在,因此返回-1

 

Note:

  1. You may assume that all elements in nums are unique.您可以假设nums中的所有元素都是唯一的。
  2. n will be in the range [1, 10000].n将在[1,10000]范围内。
  3. The value of each element in nums will be in the range [-9999, 9999].nums中每个元素的值将在[-9999,9999]范围内。

解答:

 1 class Solution {
 2     public int search(int[] nums, int target) {
 3         int lo=0,hi=nums.length-1;
 4         while(lo<=hi){
 5             int mid=lo+(hi-lo)/2;  //可以优化为 int mid=(lo+hi)>>>1
 6             if(nums[mid]<target)
 7                 lo=mid+1;
 8             else if(nums[mid]>target)
 9                 hi=mid-1;
10             else
11                 return mid;
12         }
13         return -1;
14     }
15 }

详解:

 标准的二分搜索

158.Binary Search

标签:otherwise   output   排序   pre   索引   while   搜索   its   元素   

原文地址:https://www.cnblogs.com/chanaichao/p/9629317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!