binary search

原创 2015年07月11日 10:28:23

容易 二分查找

28%
通过

给定一个排序的整数数组(升序)和一个要查找的整数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 low = 0;
        int high = nums.length - 1;
        while(low+1<high){
            int mid = low + (high-low)/2;
            if(target>nums[mid]){
                low = mid;
            }else if(target<nums[mid]){
                high = mid;
            }else{
                high = mid;
            }
        }
        if(nums[high] == target){
            return high;
        }
        if(nums[low] == target){
            return low;
        }
        
        return -1;
    }
}




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

optimal binary search tree

Binary search

  • 2009-12-05 22:23
  • 26KB
  • 下载

《leetCode》:Binary Search Tree Iterator

Binary Search Tree Iterator题目如下:Implement an iterator over a binary search tree (BST). Your iterator...

Binary search tree C++

  • 2014-12-07 02:46
  • 516KB
  • 下载

[Java]寻找最低公共祖先(排序二叉树)Lowest Common Ancestor of a Binary Search Tree

leetcode 原题链接 https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/ Give...

Optimal Binary Search Tree

  • 2009-10-06 14:27
  • 510KB
  • 下载

二分查找 Binary Search(C++)

  • 2008-07-30 14:24
  • 891B
  • 下载

浙大PAT (Advanced Level) Practise 1043 Is It a Binary Search Tree (25)

#include #include using namespace std; /*根据题意,二叉查找数的左子树节点的所有数值都小于根节点,右子树数值都大于或等于根节点数值。 又输入的一行数字为二...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)