二分查找

来源:互联网 发布:淘宝商家等级划分 编辑:程序博客网 时间:2024/05/21 15:51

容易 二分查找

29%
通过

给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1

您在真实的面试中是否遇到过这个题? 
Yes
样例

在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2

挑战

如果数组中的整数个数超过了2^32,你的算法是否会出错?

class Solution {    /**     * @param nums: The integer array.     * @param target: Target to find.     * @return: The first position of target. Position starts from 0.     */     public int binarySearch(int[] nums, int target) {int start = 0;int end = nums.length-1;if(end==0)    return -1;while(start<end){int mid =  (end-start)/2+start;    if(nums[mid]>target)end = mid-1;else if(nums[mid]<target)              start = mid+1;else               end = mid;}    if(nums[end]==target)         return end;return -1;  }}






0 0