zoukankan      html  css  js  c++  java
  • 153. 寻找旋转排序数组中的最小值-二分法

    注意:

      1. python中二分法取中点方法: mid = l + ( r - l ) // 2

      2. 递归的时候,一定要包括中点

        a) 旋转点在左边,则递归 (l,mid)

        b) 旋转点在右边,则递归(mid+1,r)

      3. 递归的过程中,一定要设置返回值

        res = helper(l,r)

        不能直接,那是更新最大最小值,或者append 

        helper(l,r) 

     注意普通二分查找,是不包括中点的

            def search_normal(l,r):

                while l<=r:
                    mid = l+(r-l)//2
                    print('normal')
                    print(l,mid,r)
                    if nums[mid] == target :
                        return mid
                    elif nums[mid]<target:
                        l = mid+1
                    elif nums[mid]>target:
                        r = mid-1
                    else:
                        return mid
                return -1

      

  • 相关阅读:
    flask_第一个程序
    Web框架_MVC vs MVT
    python_使用qrcode生成二维码
    HDU 4641
    SPOJ NSUBSTR
    SPOJ LCS2 多个串的最长公共子串
    SPOJ LCS 后缀自动机找最大公共子串
    POJ 1509 循环同构的最小表示法
    HDU 4821 字符串hash
    SPOJ GSS1 静态区间求解最大子段和
  • 原文地址:https://www.cnblogs.com/ChevisZhang/p/13488823.html
Copyright © 2011-2022 走看看