LintCode python 小白-简单题-457经典二分查找问题
2017-08-02 15:31
531 查看
题目:在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回-1
样例
给出数组 [1, 2, 2, 4, 5, 5].
对于 target = 2, 返回 1 或者 2.
对于 target = 5, 返回 4 或者 5.
对于 target = 6, 返回 -1.
思路:就是一直将目标与A[mid]进行比较,直到目标=A[mid]
代码:
样例
给出数组 [1, 2, 2, 4, 5, 5].
对于 target = 2, 返回 1 或者 2.
对于 target = 5, 返回 4 或者 5.
对于 target = 6, 返回 -1.
思路:就是一直将目标与A[mid]进行比较,直到目标=A[mid]
代码:
class Solution: # @param {int[]} A an integer array sorted in ascending order # @param {int} target an integer # @return {int} an integer def findPosition(self, A, target): # Write your code here if len(A)<1: return-1 begin=0 end=len(A)-1 if target==A[0]: return begin if target==A[-1]: return end while begin<end: mid = begin + (end - begin)/2 #这里应该//2 不然mid会出现小数点,但是lintcode自动可以取整。 if target==A[mid]: return mid elif target <A[ mid]: end=mid -1 else: begin=mid+1 return -1
相关文章推荐
- 【LintCode 简单】457. 经典二分查找问题
- LintCode python 小白-简单题-646 First Position Unique Character
- LintCode python 小白-简单题-548两数组的交Ⅱ
- lintcode-457-经典二分查找问题
- LintCode python 小白-简单题-413-反转整数
- 457 - 经典二分查找问题
- LintCode python 小白-简单题-22平面列表
- 【LintCode-457】经典二分查找问题(Java实现)
- LintCode python 小白-简单题-2 尾部的0
- LintCode python 小白-简单题-627最长回文串
- LintCode python 小白-简单题-445余弦相识度
- LintCode python 小白-简单题-569各位相加
- 经典二分查找问题
- 经典二分查找问题
- HDU-2899(简单数学问题+二分查找)
- 经典二分查找问题
- LintCode : 二分查找
- LintCode python 小白6-丑数 II
- LintCode python 小白5-丑数
- LintCode-排序列表转换为二分查找树分析及实例