[leetcode] Search in Rotated Sorted Array Python
博客专区 > ludlows 的博客 > 博客详情
[leetcode] Search in Rotated Sorted Array Python
ludlows 发表于3年前
[leetcode] Search in Rotated Sorted Array Python
  • 发表于 3年前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

Problem:

Suppose a sorted array is rotated at some pivot unknown to you beforehand.

(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).

You are given a target value to search. If found in the array return its index, otherwise return -1.

You may assume no duplicate exists in the array.

解题关键:在于确定mid位于转折点之前,还是之后

solution:

class Solution:
    # @param A, a list of integers
    # @param target, an integer to be searched
    # @return an integer
    def search(self, A, target):
        low = 0 
        high = len(A)
    
        while high != low:
            mid = (low+high)/2
            if A[mid] == target:
                return mid
            if A[low] < A[mid]:
                if target<A[mid] and A[low] <= target:
                    high = mid
                else:
                    low += 1
            else:
                if A[mid] < target and target <= A[high-1]:
                    low = mid + 1
                else:
                    high = mid
        return -1



标签: pivot leetcode python
共有 人打赏支持
粉丝 0
博文 15
码字总数 4195
×
ludlows
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: