美文网首页
二分查找 (lintcode:first-position-of

二分查找 (lintcode:first-position-of

作者: v1coder | 来源:发表于2018-01-03 11:11 被阅读0次

二分查找

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

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

我的代码,没用二分查找:

def binarySearch(nums, target):
    try:
        index1 = nums.index(target)
        print index1
    except:
        print -1


网上找的代码,我自己做了点改进:

def binarySearch(nums, target):
        # write your code here
    left, right = 0, len(nums)
    while left + 1 < right :
        mid = (left + right) / 2
        if nums[mid] < target :
            left = mid
        else :
            right = mid
    if right >= len(nums): #这句是我加的,如果没有这句,target大于nums里的最大值会报错:list index out of range
        return -1
    elif nums[left] == target :
        return left
    elif nums[right] == target :
        return right
    else:
        return -1



lintcode 原题

20180103

相关文章

  • 二分查找 (lintcode:first-position-of

    二分查找 给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第...

  • lintcode 二分查找

    给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的...

  • OJ lintcode 二分查找

    给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的...

  • js刷林扣 lintcode(2017年1月)

    题目前的数字是对应的lintcode的题目序号 14.二分查找 给定一个排序的整数数组(升序)和一个要查找的整数t...

  • python二分查找算法

    文章概述 二分查找法介绍 简单查找与二分查找对比 二分查找  二分查找算法主要思想:在有序列表中查找指定元素,先从...

  • 数据结构和算法--二分查找

    二分查找 二分查找的思想 二分查找(Binary Search)算法,也叫折半查找算法。 二分查找针对的是一个有序...

  • OJ:lintcode 经典二分查找问题

    在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回-1您在真实的面试中是否遇到过这个题?Yes样例...

  • 二分查找

    [TOC] 二分查找的基础模板 二分查找靠左的Index基础模板 二分查找靠右的Index基础模板 二分查找插入t...

  • 二分查找法

    二分查找法 二分查找法(递归)

  • 二分查找(递归、非递归)

    二分查找(递归) 二分查找(非递归)

网友评论

      本文标题:二分查找 (lintcode:first-position-of

      本文链接:https://www.haomeiwen.com/subject/oxhhnxtx.html