标签: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 innums
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 innums
so return -1
说明:2在nums中不存在,因此返回-1
Note:
nums
are unique.您可以假设nums中的所有元素都是唯一的。n
will be in the range [1, 10000]
.n将在[1,10000]范围内。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 }
标准的二分搜索
标签:otherwise output 排序 pre 索引 while 搜索 its 元素
原文地址:https://www.cnblogs.com/chanaichao/p/9629317.html