您的位置:首页 > 编程语言 > Python开发

【LintCode 简单】457. 经典二分查找问题

2018-01-20 16:06 375 查看
1.问题描述:

在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回-1。

2.样例:

给出数组 
[1, 2, 2, 4, 5, 5]
.
对于 target = 
2
, 返回 1 或者 2.
对于 target = 
5
, 返回 4 或者 5.
对于 target = 
6
, 返回 -1.

3.代码:
class Solution:
"""
@param: nums: An integer array sorted in ascending order
@param: target: An integer
@return: An integer
"""
def findPosition(self, nums, target):
# write your code here
length=len(nums)
end=length-1
start=0
mid=(end-start)/2
while start<end:
if target<nums[mid]:
end=mid-1
mid=(end-start)/2
elif target>nums[mid]:
start=mid+1
mid=(end+start)/2
else:
return mid
return -1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息