first-position-of-target
2016-11-05 02:48
323 查看
http://www.lintcode.com/zh-cn/problem/first-position-of-target/
http://www.jiuzhang.com/solutions/first-position-of-target/
描述:
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。
样例
在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。
经典二分法模板,应用的关键在于数组是升序的
思想为:我先把这个数组分成两段,由于是升序的,所以左段小于右段,然后我把target和最中间的数(划分这两段的数)去比较,根据大小关系就可以确认到底target在哪一段了。如此不停地重复去做,就相当于可以把问题规模不断的以除以二的方式缩小,最后解决。
http://www.jiuzhang.com/solutions/first-position-of-target/
描述:
给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。
样例
在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。
经典二分法模板,应用的关键在于数组是升序的
思想为:我先把这个数组分成两段,由于是升序的,所以左段小于右段,然后我把target和最中间的数(划分这两段的数)去比较,根据大小关系就可以确认到底target在哪一段了。如此不停地重复去做,就相当于可以把问题规模不断的以除以二的方式缩小,最后解决。
class Solution: # @param nums: The integer array # @param target: Target number to find # @return the first position of target in nums, position start from 0 def binarySearch(self, nums, target): if len(nums) == 0: return -1 start, end = 0, len(nums) - 1 while start + 1 < end: mid = (start + end) / 2 if nums[mid] < target: start = mid else: end = mid if nums[start] == target: return start if nums[end] == target: return end return -1
相关文章推荐
- [lintcode 14] First Position of Target
- First Position of Target
- 二分查找(first-position-of-target)
- Lintcode 14 first position of target
- Lintcode14 First Position of Target Solution 题解
- lintcode:First Position of Target
- lintcode:First Position of Target
- 【简单】Lintcode 14:First Position of Target
- Lintcode: First Position of Target (Binary Search)
- #14 First Position of Target
- 简单二分法-First Position of Target
- lintcode-easy-First Position of Target
- [LintCode] 14 First Position of Target
- Binary Search---First Position of Target
- LintCode: First Position of Target
- last position of target / first position of target
- First Position of Target
- [lintcode 14] First Position of Target
- Last Position of Target
- [LeetCode] Search for a Range (sorted integers array,find start & end position of a target number)